В данном обзоре рассмотрены
основные конструкции,
позволяющие получить доступ к
книге 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;
Удачной работы!
Источник:
В данном обзоре рассмотрены
основные конструкции,
позволяющие получить доступ к
книге 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;
Удачной работы!
|