Обращение к Excel из DELPHI
В данном обзоре рассмотрены основные
конструкции, позволяющие получить доступ
к книге Excel из DELPHI.
Организация доступа к книге EXCEL
Для взаимодействия с MS excel в
программе необходимо использовать
модуль ComObj
uses ComObj;
и объявить переменную для доступа к MS excel
следующего типа:
var Excel: Variant;
Инициализация переменной Excel в
простейшем случае можно осуществить так:
Excel :=
CreateOleObject('Excel.Application');
Создание новой книги:
Excel.Workbooks.Add;
Открытие существующей книги (где
path - путь к фалу с
расширением xls.):
Excel.Workbooks.Open[path];
Открытие существующей книги
только для чтения:
Excel.Workbooks.Open[path, 0, True];
Закрытие Excel:
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Блокировка запросов (подтвеждений,
уведомлений) Excel, например, запретить
запрос на сохранение файла:
Excel.DisplayAlerts:=False;
Отображаем Excel на экране:
Excel.Visible := True;
или скрываем:
Excel.Visible := False;
Печать содержимого активного
листа excel:
Excel.ActiveSheet.PrintOut;
Чтение/запись данных в EXCEL
Доступ к ячейке в текущей книге
Excel можно осуществить следующим образом:
Excel.Range['B2']:='Привет!';-
для записи значения в ячейку или
s:=Excel.Range['B2']; - для
чтения,
где B2 - адрес ячейки.
Или используя стиль ссылок R1C1:
Excel.Range[excel.Cells[2, 2]]:='Привет!';,
где [2, 2] - координата ячейки.
Вообще, ячейке Excel можно присваивать
любое значение (символьное, целое,
дробное, дата) при этом Excel установит
форматирование в ячейке применяемое по
умолчанию.
Формат ячеек в EXCEL
Выделить (выбрать) группу ячеек
для последующей работы можно так:
Excel.Range[Excel.Cells[1, 1],
Excel.Cells[5, 3]].Select;
или
Excel.Range['A1:C5'].Select;
при этом будет выделена область
находящаяся между ячейкой A1 и C5.
После выполнения выделения
можно установить:
1) объединение ячеек
Excel.Selection.MergeCells:=True;
2) перенос по словам
Excel.Selection.WrapText:=True;
3) горизонтальное выравнивание
Excel.Selection.HorizontalAlignment:=3;
при присваивании значения 1 используется
выравнивание по умолчанию, при 2 -
выравнивание слева, 3 - по центру, 4 - справа.
4) вериткальное выравнивание
Excel.Selection.VerticalAlignment:=1;
присваиваемые значения аналогичны
горизонтальному выравниванию.
5) граница для ячеек
Excel.Selection.Borders.LineStyle:=1;
При значении 1 границы ячеек рисуются
тонкими сплошными линиями.
Кроме этого можно указать значения для
свойства Borders, например, равное 3. Тогда
установится только верхняя граница для
блока выделения:
Excel.Selection.Borders[3].LineStyle:=1;
Значение свойства Borders задает различную
комбинацию граней ячеек.
В обоих случаях можно использовать
значения в диапазоне от 1 до 10.
Использование паролей в EXCEL
Установка пароля для активной
книги может быть произведена следующим
образом:
try
// попытка установить пароль
Excel.ActiveWorkbook.protect('pass');
except
// действия при неудачной попытке
установить пароль
end;
где pass - устанавливаемый пароль на книгу.
Снятие пароля с книги
аналогично, использовуем команду
Excel.ActiveWorkbook.Unprotect('pass');
где pass - пароль, установленный для защиты
книги.
Установка и снятие пароля для
активного листа книги Excel производится
командами
Excel.ActiveSheet.protect('pass'); // установка
пароля
Excel.ActiveSheet.Unprotect('pass'); // снятие пароля
где pass - пароль, установленный для защиты
книги.
Вспомогательные операции в EXCEL
Удаление строк со сдвигом
вверх:
Excel.Rows['5:15'].Select;
Excel.Selection.Delete;
при выполнении данных действий будут
удалены строки с 5 по 15.
Установка закрепления области
на активном листе Excel
// снимаем
закрепление области, если оно было задано
Excel.ActiveWindow.FreezePanes:=False;
// выделяем нужную ячейку, в
данном случае D3
Excel.Range['D3'].Select;
// устанавливаем
закрепление области
Excel.ActiveWindow.FreezePanes:=True;
Удачной работы!
<< предыдущая
||
следующая >>
|