Nechaeff
Нечаев Андрей
персональная страница
РЕЗЮМЕ

РОДНОЙ ГОРОД
РАССКАЗОВО

САПР СТУДЕНТАМ
ПОСВЯЩАЕТСЯ

ПОЛЕЗНОСТИ

ВСЯКОСТИ

CCЫЛОЧКИ

 

Обращение к Excel из Delphi

В данном обзоре рассмотрены основные конструкции, позволяющие получить доступ к книге Excel из Delphi.

Организация доступа к книге EXCEL

Для взаимодействия с MS excel в программе необходимо использовать модуль ComObj и объявить переменную для доступа к MS Excel вариантного типа.

uses ComObj;
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

Удаление строк со сдвигом вверх (при выполнении данных действий будут удалены строки с 5 по 15):

Excel.Rows['5:15'].Select;
Excel.Selection.Delete;

Установка закрепления области на активном листе Excel:

// снимаем закрепление области, если оно было задано
Excel.ActiveWindow.FreezePanes:=False;
// выделяем нужную ячейку, в данном случае D3
Excel.Range['D3'].Select;
// устанавливаем закрепление области
Excel.ActiveWindow.FreezePanes:=True;

Удачной работы!


Рекламный блок
 

Хостинг http://www.tamb.ru

Rambler's Top100 Рейтинг@Mail.ru группа КИПЕЛОВ - мой вЫбор!