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