Работая в среде разработки Delphi, как и во многих её аналогах, программист вынужден периодически обращаться к Excel. Excel представляет собой программу из распространённого офисного пакета приложений Microsoft Office, созданного для редактирования текстовых документов, разработки таблиц и создания баз данных. Сама программа Excel отвечает за возможность пользователя без лишних подробностей создавать таблицы, выполнять в них все необходимые редактирования и работы и полностью контролировать изменения в данных.
Чтобы пользователь имел возможность взаимодействовать с программой Microsoft Office Excel, разработчиками был предусмотрен специализированный модуль ComObj. В первую очередь мы попробуем организовать доступ из Delphi к книге Excel и последовательно разобрать все необходимые для этого действия на конкретных примерах.
Для обращения к Excel необходимо воспользоваться ComObj и в разделе объявления переменных указать конкретную переменную, открывающую доступ к Microsoft Office Excel, который в свою очередь будет относиться к вариантному типу. Сделать это необходимо в следующем виде:
uses ComObj;
var Excel: Variant;
Говоря о инициализации переменных в Microsoft Office Excel Delphi, приведём в пример простейший случай, который будет выглядеть подобным образом:
Excel := CreateOleObject('Excel.Application');
Для создания новых книг обычно используется это:
Excel.Workbooks.Add;
Если же вам необходимо открыть уже существующую книгу, а не создавать новую, вы должны будете воспользоваться командой, приведённой ниже. Однако, стоит заметить, что данное действие не позволит вам совершить с книгой никакой работы, кроме её прочтения:
Excel.Workbooks.Open[path, 0, True];
Чтобы закрыть документы Excel, вам понадобятся эти строки:
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Так же в своей работе при обращении из Delphi к Excel вы можете столкнуться с не менее распространёнными проблемами и вопросами. К такого рода затруднениям относится блокировка запроса, подтверждения или уведомления Excel, которые нередко мешают работе. Пользователь без проблем может, скажем, запретить программе выводить запрос на сохранение файлов с помощью следующего текста:
Excel.DisplayAlerts:=False;
Так же по каким-то причинам вам может понадобиться отобразить или скрыть окно Excel на экране вашего компьютера. Тогда на помощь приходит такая команда:
Excel.Visible := True;
Excel.Visible := False;
В тексте которой соответственно первая строка отвечает за открытие окна, а вторая — за его сворачивание.
Так же при работе с книгами Microsoft Office Excel у пользователей может возникнуть необходимость в распечатывании той или иной страницы документа, что всегда можно выполнить при помощи команды печати активного листа, приведённой ниже:
Excel.ActiveSheet.PrintOut;
Теперь следует рассказать о процедурах чтения и записи каких-либо данных в Excel Delphi. Отметим, что Microsoft Office Excel должен выдать вам доступ к каждой необходимой ячейке в открытой книге. Получить этот доступ вы можете относительно простым образом:
Excel.Range['b2']:='Привет!'; // запись значения в ячейку
s:=Excel.Range['b2']; // чтение значения из ячейки
Здесь b2 является адресом ячейки.