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

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

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

Uses ComObj;

и объявить переменную для доступа к MS Excel следующего типа:

Var MsExcel: Variant;

Инициализация переменной Excel в простейшем случае можно осуществить так:

MsExcel:= CreateOleObject("Excel.Application");

Создание новой книги:

MsExcel.Workbooks.Add;

Открытие существующей книги (где path - путь к фалу с расширением xls.):

MsExcel.Workbooks.Open;

Открытие существующей книги только для чтения:

MsExcel.Workbooks.Open;

Закрытие Excel:

MsExcel.ActiveWorkbook.Close; MsExcel.Application.Quit;

Блокировка запросов (подтверждений, уведомлений) Ms Excel, например, запретить запрос на сохранение файла:

MsExcel.DisplayAlerts:=False;

Отображаем Excel на экране:

MsExcel.Visible:= True;

или скрываем:

MsExcel.Visible:= False;

Печать содержимого активного листа MS Excel:

MsExcel.ActiveSheet.PrintOut;

Чтение/запись данных в EXCEL

Доступ к ячейке в текущей книге Excel можно осуществить следующим образом:

Для записи значения в ячейку:

MsExcel.Range["B2"]:="Привет!";

Для чтения значения из ячейки:

S:=MsExcel.Range["B2"];

где B2 - адрес ячейки.

Или используя стиль ссылок R1C1:

MsExcel.Range]:="Привет!";

где - координата ячейки.

Вообще, ячейке Excel можно присваивать любое значение (символьное, целое, дробное, дата) при этом Ms Excel установит форматирование в ячейке применяемое по умолчанию.

Формат ячеек в EXCEL

Выделить (выбрать) группу ячеек для последующей работы можно так:

MsExcel.Range, MsExcel.Cells].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 - справа.

Граница ячеек

При значении 1 границы ячеек рисуются тонкими сплошными линиями.

Кроме этого можно указать значения для свойства Borders, например, равное 3. Тогда установится только верхняя граница для блока выделения:

MsExcel.Selection.Borders.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

Работа с EXCEL из Delphi

В этой статье я познакомлю вас как работать с MS Excel из Delphi . Данная статья может быть полезна людям, которые хотят научиться создавать различные отчеты в Excel из программ написанных на Delphi . Статья содержит справочные данные необходимые для работы с MS Excel . Здесь вы найдете информацию о том как:

Подключить и правильно отключить интерфейс Excel;
- Как изменить размер, цвет и тип шрифта;
- Как выделить, объединить, заполнить и размножить диапазон ячеек;
- Как повернуть и отцентрировать текст;
- Как нарисовать границы ячеек;
- Как ввести формулу в ячейку и многое другое...

И так, начнем...

Работать будем через модуль ComObj, для этого в uses необходимо добавить модуль ComObj и модуль Excel_TLB (для MS Excel 2007 ).

Uses ……, ComObj, Excel_TLB;

Модуль Excel_TLB содержит необходимые константы для работы с Excel , его можно не подключать, но тогда придется в ручную прописывать значения всех используемых констант из этого модуля. Значения констант можно найти внутри модуля или в интернете, но для разных версий MS Excel они разные.
Внимание!!! Модуль Excel_TLB в других версиях MS Excel может называться по другому. Перед подключением модуля Excel_TLB, необходимо импортировать библиотеку Excel . Для этого выберите Component->Import Component->Import a Type Library-> находим MS Excel и следуем инструкциям.

В разделе описания переменных мы должны описать переменную типа Variant или OleVariant для подключения интерфейса Excel. Я описал переменную excel .

Form1: TForm1;
excel : variant; // Переменная в которой создаётся объект EXCEL

Создание документа

Внимание!!! Всегда когда создаете объект интерфейса, заключайте процедуру создания в модуль обработки ошибок:
try
создаем интерфейс;
формируем отчет;
освобождаем интерфейс;
Except
обрабатываем ошибки;
освобождаем интерфейс;
end;

try
// создаем обьект EXCEL

// Чтоб не задавал вопрос о сохранении документа
excel.DisplayAlerts:= false;

// создаем новый документ рабочую книгу
excel.WorkBooks.Add;

// или загружаем его из директории с программой
excel.WorkBooks.Open(GetCurrentDir() + "\отчет.xls");

{ GetCurrentDir()- возвращает путь к директории с программой}

// Делаем его видимым данную функцию после отладки и тестирования лучше использовать в конце, после сформирования отчета (это ускоряет процесс вывода данных в отчет)
excel.Visible:= true;

//задаем тип формул в формате R1C1
excel.Application.ReferenceStyle:= xlR1C1;

// задаем тип формул в формате A1
excel.Application.ReferenceStyle:= xlA1;

// Задаем название первому и второму листу
excel.WorkBooks.WorkSheets.Name:= "Отчет1";
excel.WorkBooks.WorkSheets.Name:= "Отчет2";

//задаем формат числа для первой и четвертой колонки формат числа
excel.WorkBooks.WorkSheets.Columns.NumberFormat:= "0,00";
excel.WorkBooks.WorkSheets.Columns.NumberFormat:= "0,0";

// задаем ширину первой и второй колонки
excel.WorkBooks.WorkSheets.Columns.ColumnWidth:= 10;
excel.WorkBooks.WorkSheets.Columns.ColumnWidth:= 20;

// задаем начертание, цвет, размер и тип шрифта для первого ряда
excel.WorkBooks.WorkSheets.Rows.Font.Bold:= True; //жирный
excel.WorkBooks.WorkSheets.Rows.Font.Color:= clRed; // цвет красный
excel.WorkBooks.WorkSheets.Rows.Font.Size:= 12; //размер 12
excel.WorkBooks.WorkSheets.Rows.Font.Name:= "Times New Roman"; //шрифт

//присваиваем ячейке 1,4 и 2,4 значения (1 - ряд, 4 - колонка)
excel.WorkBooks.WorkSheets.Cells := "А так можно внести значение в ячейку";
excel.WorkBooks.WorkSheets.Cells := "А так можно внести значение в ячейку";

//ввод в ячейку "A12" формулы "=b5+c4"
excel.WorkBooks.WorkSheets.Range["A12"].Formula:="=b5+c4";

// Выравнивам первый ряд по центру по вертикали
excel.WorkBooks.WorkSheets.Rows.VerticalAlignment:= xlCenter;

// Выравнивам первый ряд по центру по горизонтали
excel.WorkBooks.WorkSheets.Rows.HorizontalAlignment:= xlCenter;

// Выравнивам в ячейке по левому краю
excel.WorkBooks.WorkSheets.Cells.HorizontalAlignment:= xlLeft;

// Выравнивам в ячейке по правому краю
excel.WorkBooks.WorkSheets.Cells.HorizontalAlignment:= xlRight;

// Обьединяем ячейки "A1:A8"
excel.WorkBooks.WorkSheets.Range["A1:A8"].Merge;

// Поворачиваем слова под углом 90 градусов для второго ряда
excel.WorkBooks.WorkSheets.Rows.Orientation:= 90;

// Поворачиваем слова под углом 45 градусов для диапазона ячеек "B3:D3"
excel.WorkBooks.WorkSheets.Range["B3:D3"].Orientation:= 45;

//рисуем границы выделенного диапазона левая
excel.Selection.Borders.LineStyle:= xlContinuous; // стиль линии сплошная
excel.Selection.Borders.Weight:= xlMedium;// толщина линии

//рисуем границы выделенного диапазона верхняя

excel.Selection.Borders.Weight:= xlMedium;

//рисуем границы выделенного диапазона нижняя

excel.Selection.Borders.Weight:= xlMedium;

//рисуем границы выделенного диапазона правая

excel.Selection.Borders.Weight:= xlMedium;

//рисуем границы выделенного диапазона вертикальные внутрениие

excel.Selection.Borders.Weight:= xlMedium;

//рисуем границы выделенного диапазона горизонтальные внутрениие

excel.Selection.Borders.Weight:= xlMedium;

//автозаполнение выделенного диапазона
//для примера заполним область ячеек "A10:C10" словом "привет"
//и размножим его вниз еще на пять ячеек "A10:C15"

excel.WorkBooks.WorkSheets.Range["A10:C10"].Value:="привет";

//выделяем диапазон ячеек "A10:C10"
excel.WorkBooks.WorkSheets.Range["A10:C10"].Select;

//автозаполняем (копируем) выделенным диапазоном область ячеек "A10:C15"
excel.selection.autofill(excel.WorkBooks.WorkSheets.Range["A10:C15"],xlFillDefault);

//отключаем предупреждения, чтобы не задавал вопросов о сохранении и других
excel.DisplayAlerts:= False;

//сохраняем документ в формате Excel 97-2003
excel.ActiveWorkBook.Saveas(GetCurrentDir() + "\отчет.xls",xlExcel8);

//сохраняем документ в текущем формате Excel 2007
excel.ActiveWorkBook.Saveas(GetCurrentDir() + "\отчет.xlsx");

//закроем все книги
excel.Workbooks.Close;

//закрываем Excel
excel.Application.quit;

//освобождаем интерфейсы
excel:= Unassigned;

//обрабатываем ошибки

//закроем все книги
excel.Workbooks.Close;

//закрываем Excel
excel.Application.quit;

//освобождаем интерфейсы
excel:= Unassigned;
end;
end;

При работе с листом Excel мы можем использовать следующие варианты:
- работать с областью Range["B3:D3"];
- работать с ячейкой Cells где 2 - ряд, 4 - колонка;
- работать с рядами Rows или с диапазоном рядов Rows["1:5"];
- работать с колонками Columns или диапазоном колонок Columns["A:I"];

Range["A1"] и Cells обозначают одно и тоже.

После сформирования документа или возникновении ошибки вы должны правильно освободить интерфейсы.
Иначе при закрытии Excel он скрывается с экрана, но если открыть диспетчер задач он продолжает там висеть и если данный процесс не завершить, то при каждом новом запуске их будет накапливаться больше и больше, пока компьютер не начнет виснуть. Поэтому обязательно необходимо освобождать все интерфейсы с вязанные с Excel с его книгами и листами.

Например так:
//закроем все книги
excel.Workbooks.Close;

//закрываем Excel
excel.Application.quit;

//освобождаем интерфейсы
sheet:=Unassigned; //интерфейс листа если он был создан
WorkBook:= Unassigned;//интерфейс рабочей книги если он был создан
excel:= Unassigned;//интерфейс самого предложения если он был создан

Ниже привожу пример вывода в Excel из Delphi таблицы умножения с подробными комментариями.

Unit Unit1;

Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, comobj, StdCtrls, Excel_TLB;

Type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Var
Form1: TForm1;
excel: variant; // Переменная в которой создаётся объект EXCEL
MyData: variant; // Переменная в которой формируется таблица умножения
i,j:integer;
implementation

Procedure TForm1.Button1Click(Sender: TObject);
begin
try
// Обьект EXCEL
excel:= CreateOleObject("Excel.Application");
// Чтоб не задавал вопрос о сохранении документа
excel.DisplayAlerts:= false;
// новый документ
excel.WorkBooks.Add;

//объявляем вариантный массив
MyData:= VarArrayCreate(,varVariant);
for I:= 1 to 9 do
for J:= 1 to 9 do
MyData:=i*j;

// Обьединяем ячейки "A1:I1"
excel.WorkBooks.WorkSheets.Range["A1:I1"].Merge;
//Пишем заголовок
excel.WorkBooks.WorkSheets.Range["A1"].Value:="Таблица умножения";
// Выравнивам заголовок по центру
excel.WorkBooks.WorkSheets.Range["A1"].HorizontalAlignment:= xlCenter;
// задаем ширину колонок с A по I
excel.WorkBooks.WorkSheets.Columns["A:I"].ColumnWidth:= 3;

//выделяем область таблицы умножения ["A2:I10"] и рисуем границы
excel.WorkBooks.WorkSheets.Range["A2:I10"].select;
//рисуем границы выделенного диапазона левая
excel.Selection.Borders.LineStyle:= xlContinuous; // стиль линии сплошная
excel.Selection.Borders.Weight:= xlThin;// толщина линии
//рисуем границы выделенного диапазона верхняя
excel.Selection.Borders.LineStyle:= xlContinuous;
excel.Selection.Borders.Weight:= xlThin;
//рисуем границы выделенного диапазона нижняя
excel.Selection.Borders.LineStyle:= xlContinuous;
excel.Selection.Borders.Weight:= xlThin;
//рисуем границы выделенного диапазона правая
excel.Selection.Borders.LineStyle:= xlContinuous;
excel.Selection.Borders.Weight:= xlThin;
//рисуем границы выделенного диапазона вертикальные внутрениие
excel.Selection.Borders.LineStyle:= xlContinuous;
excel.Selection.Borders.Weight:= xlThin;
//рисуем границы выделенного диапазона горизонтальные внутрениие
excel.Selection.Borders.LineStyle:= xlContinuous;
excel.Selection.Borders.Weight:= xlThin;

//присваиваем диапазону ["A2:I10"] значения вариантного массива MyData это значительно ускоряет работу, нежели вывод по //ячеечно

Excel.WorkBooks.WorkSheets.Range["A2:I10"].Value:=MyData;

// Делаем его видимым
excel.Visible:= true;
//освобождаем интерфейсы
MyData:= Unassigned;
excel:= Unassigned;
Except
showmessage("Внимание! Произошла ошибка при создании MS Excel приложения");
//закрываем Excel
excel.Application.quit;
//освобождаем интерфейсы
MyData:= Unassigned;
excel:= Unassigned;
end;
end;

При написании статьи использовался материал с сайта

Здравствуйте, в этой статье я расскажу Вам, как использовать в своем приложении (программе) на Delphi БД в виде MS Excel . Да да именно MS Excel . Тут ничего сложного нету. Для начала давайте заполним наш лист в MS Excel. Первая строка в каждом столбце всегда будет брать наше приложение как название столбцов, то есть оно не берет название столбцов такое — A , B , C и так далее. Так что в первсой строке столбца А и столбца B я написал ФИО и Оценка соответственно для каждого столбца. Это и будут наши заголовки, затем ниже я заполнил данные, которые будут в моей БД, ну это фамилии и оценки сами напиши. Так БД у нас готова. Теперь создадим к ней подключение. создается подключение похоже как и в MS Access , так что тут ничего сложного нету. На форме у нас старые компоненты это

  • TDBGrid
  • TADOQuery
  • TADOConnection
  • TDataSource

Как связывать эти компоненты я расскажу быстро, так как это уже было сказано мною.

  • TADOQuery c TADOConnection в свойстве — Connection
  • TDataSource с TADOQuery в свойстве DataSet
  • TDBGrid c TDataSource в свойстве DataSource

В TADOConnection установим свойство LongPromt в False . Вроде бы небольшую настройку сделали. Теперь приходим к непосредственному подключени. В свойстве TADOConnection - ConnectionString нажимаем на кнопку ««, далее у нас появляется окно вида

Нажимаем на кнопку «Build… » и появляется следующее окно

В данном окне выбираем следующего провайдера: Microsoft OLE DB Provider for ODBC Drivers и нажимаем кнопку «Далее>> » и видем следующее окно

В этом окне сразу ставим указатель на «Использовать строку подключения » и нажимаем на кнопку «Сборка «, после чего появляется окно

В этом окне переходим на вкладку Источник данных компьютера, в появившемся списке выбираем — Файлы Excel , а точнее жмем левой кнопкой мыши по этой сроке двойным щелчком и в появившемся окне указываем путь к нашей Excel -книги, которую мы создавали. После этого нажимаем на пноку «Ok «. Все подключение у нас готово. Хочу добавить еще, если у Вас файл Excel , где ваша таблица находится лежит в одном каталоге с программой, то в свойстве компонента TADOConnection - ConnectionString будет прописан путь к Вашему Excel-файлу, стерите путь, а оставьте просто имя Вашего Excel файла с расширением, а в свойстве DefaultDataBase этого же компонента, напишите имя вашего Excel -файла с расширением. Тогда при запуске вашего приложения, не будет возникать ошибок с неправильно заданым путем к вашей БД. Далее в TDBGrid нажмем по нему двойным щелчком и в появившемся окне создаим 2 строки, это наши столбцы будут. А создаются они путем нжатия в данном окне на кнопку «Add New (Ins) «. Далее выделив кажду строку в свойстве FieldName для первой строки напишем — ФИО , так как в Excel -файле я именно так написал в первую строку название столбца (для ячейки A1 я так написал), а выделив вторую строку, что создали в TDBGrid , в свойстве FieldName напишем — Оценка , так как именно я такое название столбца написал (в ячейке А2 я так написал). Все теперь нам можно активировать наши данные. Для этого на событие главной формы — OnCreate напишем следующее

Как видите все тот же запрос, только вместо имя таблица, как у нас было в MS Access мы указываем имя листа нашего в Excel , заключив его в квадратные скобки и поставив в конце знак $ . Как видите ничего сложного нету. В следующей статье про БД MS Excel я расскажу как вставлять данные, редактировать и так далее.

Хоче заметить, что если Вы является настоящим фанатом футбола, а тем более английского чемпионата, который на данный момент является одним из сильнейшим, то Вам наверняка будет очень интересно почитать про футбольный клуб

Мы рассмотрели в разд. 6.4.2 основные операции, связанные с книгами. Теперь перейдем к операциям с листами книги. Коллекция листов содержится в свойстве Worksheets объекта книги. Эта коллекция по своим свойствам подобна рассмотренной ранее коллекции Workbooks. К листу можно обращаться по индексу или по имени. Например, следующие операторы при работе с серверами СОМ открывают и активизируют первый лист книги, представленной объектом Excel Workbook 1, передают указатель на этот лист в переменную Excel Worksheet 1 и активизируют лист, т.е. выдвигают его на первый план в окне Excel:

ExcelWorksheetl:= ExcelWorkbookl.Worksheets as ExcelWorksheet; ExcelWorksheetl.Activate(LOCALE_USER_DEFAULT);

ExcelWorksheetl:= ExcelWorkbookl.Worksheets; ExcelWorksheetl.Activate;

Свойство Worksheets имеется также в объекте сервера. Это свойство относится к активной книге. Так что следующие операторы при работе с серверами СОМ производят операции с активной книгой, открывая и активизируя в ней лист, имя которого (например, "Лист1") задано в окне редактирования Editl:

Worksheets as ExcelWorksheet; ExcelWorksheetl.Activate(LOCALE USER DEFAULT);

При работе с серверами автоматизации OLE аналогичные операторы выглядят так:

ExcelWorksheetl:= ExcelApplicationl.Worksheets; ExcelWorksheetl.Activate;

Если лист с заданным именем отсутствует в книге, будет генерироваться исключение. Так что если имеется подобная опасность, это исключение надо перехватить, например, следующим образом:

ExcelWorksheetl:= ExcelApplicationl.

Worksheets as ExcelWorksheet; ExcelWorksheetl.Activate(LOCALE_USER_DEFAULT); except

ShowMessage("He удалось открыть лист "" + Editl.Text + """); end;

Добавить новый лист в книгу можно методом Add объекта Worksheets:

Function Add(Before: OleVariant; After: OleVariant; Count: OleVariant; Type_: OleVariant; lcid: Integer): IDispatch;

Параметры Before или After - это объект листа, перед которым или после которого осуществляется вставка. Обычно достаточно задать только один из этих параметров, а другой сделать равным EmptyParam. Если оба параметра равны EmptyParam, то новые листы вставляются перед текущим активным листом. Параметр Count указывает число вставляемых листов. Если этот параметр равен EmptyParam, то вставляется один лист. Параметр Туре__ определяет тип вставки. При значении EmptyParam вставляется новый пустой лист.

Например, следующий код при работе с серверами СОМ вставляет один новый лист перед активным листом активной книги и передает указатель на него в переменную ExcelWorksheetl:

EmptyParam, EmptyParam, EmptyParam, EmptyParam, LOCALE_USER_DEFAULT) as ExcelWorksheet;

А следующий код вставляет два новых листа после третьего листа активной книги:

Var After, Num: OleVariant; After:= ExcelApplicationl.Worksheets; Num:= 2;

ExcelWorksheetl:= ExcelApplicationl.Worksheets.Add(

EmptyParam,After,Num,EmptyParam, LOCALE_USER_DEFAULT) as ExcelWorksheet;

При работе с серверами автоматизации OLE аналогичные операторы выглядят так:

ExcelWorksheetl:= ExcelApplicationl.Worksheets.Add;

ExcelWorksheetl:= ExcelApplicationl.Worksheets.Add(

After:= ExcelApplicationl.Worksheets, Count:= 2);

Имя вставленного или любого имеющегося листа можно изменить с помощью свойства Name. Например:

ExcelWorksheetl.Name:= "Счет-фактура"; Удалить лист из книги можно методом Delete:

ExcelWorksheetl.Delete(LOCALE_USER_DEFAULT);

Напечатать лист можно методом Printout, не отличающимся от аналогичного метода, описанного ранее для книги. Например, печать текущей страницы при работе с серверами СОМ может быть оформлена так:

ExcelWorksheetl:= ExcelApplicationl.ActiveSheet as, ExcelWorksheet; ExcelWorksheetl.Printout(EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, LOCALE_USER_DEFAULT);

При работе с серверами автоматизации OLE получается попроще:

ExcelWorksheetl:= ExcelApplicationl.ActiveSheet; ExcelWorksheetl.Printout;

Предварительный просмотр листа перед печатью можно осуществить методом PrintPreview:

Procedure PrintPreview(EnableChanges: OleVariant; leid: Integer);

Параметр EnableChanges указывает возможность внесения изменений при просмотре. Например, следующий оператор обеспечивает при работе с серверами СОМ предварительный просмотр активного листа книги:

(ExcelApplicationl.ActiveSheet as ExcelWorksheet).

PrintPreview (true, LOCALE_USER_DEFAULT) ;

Для серверов OLE аналогичный оператор имеет вид:

ExcelApplicationl.ActiveSheet;PrintPreview(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;

Открытие существующей книги только для чтения:
Excel.Workbooks.Open;

Закрытие 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 можно присваивать любое значение (символьное, целое, дробное, дата) при этом Excel установит форматирование в ячейке применяемое по умолчанию.

Формат ячеек в EXCEL

Выделить (выбрать) группу ячеек для последующей работы можно так:
Excel.Range, Excel.Cells].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) граница для ячеек

При значении 1 границы ячеек рисуются тонкими сплошными линиями.
Кроме этого можно указать значения для свойства Borders, например, равное 3. Тогда установится только верхняя граница для блока выделения:
Excel.Selection.Borders.LineStyle:=1;
Значение свойства Borders задает различную комбинацию граней ячеек.
В обоих случаях можно использовать значения в диапазоне от 1 до 10.

Использование паролей в EXCEL

Установка пароля для активной книги может быть произведена следующим образом:
try
// попытка установить пароль
Excel.ActiveWorkbook.protect("pass");
except
// действия при неудачной попытке установить пароль
end;

где pass - устанавливаемый пароль на книгу.

Снятие пароля с книги аналогично, использовуем команду
Excel.ActiveWorkbook.Unprotect("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;

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