Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Меньшикова / Пособие - 5 курс / К.Г.Меньшикова -32 с.doc
Скачиваний:
15
Добавлен:
13.03.2016
Размер:
321.02 Кб
Скачать

Работа с ячейками таблицы

Одна из ячеек таблицы является активной и с ней можно работать отдельно. Например, можно записать значение:

ExcelApplication1->ActiveCell->set_Value((TVariant)"a");

В Excel ячейки таблицы рассматриваются как двумерный массив Cells(<номер строки>,<номер столбца>). Для получения доступа к этому массиву в Builder C++ используется метод get_Cells().

С помощью методов set_Item(<номер строки>, <номер столбца>, <значение>) и get_Item(<номер строки>, <номер столбца>) можно записывать и извлекать значения элементов с указанными индексами. Например:

// число 222 записывается в ячейку с номерами (1,1): ExcelWorksheet2 -> get_Cells()-> set_Item((TVariant)1,(TVariant)1,(TVariant)"222"); // для записи формулы используется функция: ExcelWorksheet2 -> get_Cells()-> set_Item((TVariant)5,(TVariant)1,(TVariant) "=СУММА(A1:A3"); // из ячейки (1,4) извлекается значение: k = (TVariant)ExcelWorksheet2 -> get_Cells()-> get_Item((TVariant)1,(TVariant)4);

Объект Range рабочего листа ExcelWorksheet предоставляет удобный доступ к таблице и позволяет работать с ячейкой таблицы, диапазоном ячеек, прямоугольной областью. Приведем примеры его использования:

// в ячейку B1 занести число 4: ExcelWorksheet1->get_Range((TVariant)"B1", (TVariant)"B1")->set_Value((TVariant)4); // в ячейки с3-с6 записать формулы: ExcelWorksheet2->get_Range((TVariant)"с3",(TVariant)"с6") -> set_Value((TVariant)"=a3+b3");

Когда формула присваивается диапазону ячеек, то переменные в формуле имеют относительные имена, поэтому в предыдущем примере в ячейку c4 будет вписана формула “=a4 +b4” и т.д.

// Получение значения из ячейки b5: TVariant y; y=ExcelWorksheet2->get_Range((TVariant)"b5", (TVariant)"b5") -> get_Value(); // Удаление содержимого диапазона ячеек: ExcelWorksheet2 -> get_Range ((TVariant)"D1",(TVariant)"D3") -> Clear(); // Копирование через буфер обмена: ExcelWorksheet2 -> get_Range ((TVariant)"A1",(TVariant)"B3") -> Copy(); ExcelWorksheet2 -> get_Range ((TVariant)"A7",(TVariant)"B9") -> Select(); ExcelWorksheet2 -> Paste();

При переходе от одного объекта Range к другому, например от одной ячейки к другой, отстоящей от первой на определенное расстояние, можно использовать смещение. Достигается это благодаря методу Offset объекта Range. Метод имеет два параметра: смещение по строкам и столбцам, и возвращает новый объект Range, отстоящий от прежнего на заданное расстояние.

Например, следующий оператор задает запись в ячейку, отстоящую от “b5” на (–1, 3), то есть в ячейку “e4”:

ExcelWorksheet2-> get_Range ((TVariant)"b5", (TVariant)"b5") -> get_Offset ((TVariant)-1,(TVariant)3) ->set_Value((TVariant)"=b5+d4");

Оформление ячеек таблицы можно выполнить так:

// выделение курсивом ExcelWorksheet2 -> get_Range ((TVariant)"A1", (TVariant)"E5")->get_Font()->set_Italic((TVariant)true); // выравнивание ExcelWorksheet2->get_Range ((TVariant)"D1", (TVariant) "E3")-> set_HorizontalAlignment((TVariant)xlCenter); // изменение цвета букв: ExcelWorksheet2 -> get_Range((TVariant)"D1", (TVariant) "E3")-> get_Font()-> set_Color((TVariant)0x00FF0000); // заливка цветом: ExcelWorksheet2 -> get_Range((TVariant)"A1",(TVariant) "B7")-> Interior-> set_Color((TVariant)RGB(0,128,200));

Работа с сервером Word организуется аналогичным образом. Среди основных компонент - WordApplication, WordDocument, WordFont и WordParagraphFormat. Примеры работы с ними можно найти в [1].