Отчётность в Excel

Наша задача создать отчётность в Excel. Эта потребность может возникнуть у каждого программиста баз данных, ведь Office установлен в нашей стране практически на каждом компьютере. А это значит, что вашу отчётность можно смело переносить между компьютерами и быть уверенным, что её смогут прочитать.
Сначала я покажу полностью процедуру, потому что исходников в конце статьи не будет, а потом мы разберём её по косточкам
procedure TForm1.Button1Click(Sender TObject);
var
XLApp,Sheet,Colum Variant;
index,i Integer;
begin
XLApp = CreateOleObject(‘Excel.Application’);
XLApp.Visible =true;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name =’Отчёт’;
Colum =XLApp.Workbooks[1].WorkSheets[‘Отчёт’].Columns;
Colum.Columns[1].ColumnWidth =40;
Colum.Columns[2].ColumnWidth =10;
Colum.Columns[3].ColumnWidth =30;
Colum.Columns[4].ColumnWidth =10;

Colum =XLApp.Workbooks[1].WorkSheets[‘Отчёт’].Rows;
Colum.Rows[2].Font.Bold =true;
Colum.Rows[1].Font.Bold =true;
Colum.Rows[1].Font.Color =clBlue;
Colum.Rows[1].Font.Size =14;

Sheet =XLApp.Workbooks[1].WorkSheets[‘Отчёт’];
Sheet.Cells[1,2] =’Отчёт из Delphi’;
Sheet.Cells[2,1] =’Колонка 1′;
Sheet.Cells[2,2] =’Колонка 2′;
Sheet.Cells[2,3] =’Колонка 3′;
Sheet.Cells[2,4] =’Колонка 4′;

index =3;
for i =0 to 2 do
begin
Sheet.Rows[index].Font.Color =clGreen;
Sheet.Cells[index,1] =random(100);

Sheet.Cells[index,2] =random(100);

Sheet.Cells[index,3] =random(100);

Sheet.Cells[index,4].Font.Color =clRed;
Sheet.Cells[index,4] =random(100);
Inc(index);
end;
end;
Для того, чтобы всё это работало, нужно подключить в раздел Uses модуль ComObj . А теперь начнём всё с самого начала.
Первая строка создаёт объект Excel (XLApp = CreateOleObject(‘Excel.Application’)), и записывает его в переменную XLApp . Эта переменная типа Variant . Variant — это тип, который может принимать любые значения строки, числа, указатели и др. Вторая строка (XLApp.Visible =true) заставляет запустить сам Excel. Потом я добавляю новую рабочую книгу (XLApp.Workbooks.Add(-4167)). Число в скобках — это константа, которая означает создание книги и её изменять нельзя. Дальше я даю название созданной книге XLApp.Workbooks[1].WorkSheets[1].Name =’Отчёт’. Это действие не обязательно, но я всегда это делаю, потому что меня бесит название по умолчанию Лист 1″.
Теперь у нас Excel запущен и создана новая книга. Можно переходить к впечатыванию данных. Но прежде чем это сделать я отформатирую колонки и строки. Для этого я получаю указатель на колонки рабочей книги (Colum = XLApp. Workbooks[1]. WorkSheets[‘Отчёт’]. Columns), и записываю результат в переменную Colum типа Variant . Теперь последовательно изменяю ширину колонок (Colum. Columns[1]. ColumnWidth = 40). На русском эта команда будет звучать так Колонки. Колонка[1]. ШиринаКолонки =40.
После этого я в ту же переменную записываю указатель на строки рабочей книги (Colum = XLApp. Workbooks[1]. WorkSheets[‘Отчёт’]. Rows). Для украшения строк нашего отчёта, я устанавливаю у первых двух строк жирный шрифт (Colum. Rows[1]. Font. Bold = true). В квадратных скобках теперь порядковый номер строки. Далее идут две строки, в которых я устанавливаю цвет первой строки в синий и размер шрифта равный 14.
Форматирование окончено, теперь можно выводить данные. Для этого я получаю указатель на лист (Sheet =XLApp.Workbooks[1].WorkSheets[‘Отчёт’]). Для того, чтобы вывести данные, нужно просто присвоить значение в Sheet.Cells[строка, колонки]. В процессе вывода данных можно изменять цвет строк Sheet. Rows[строка]. Font. Color или колонок Sheet. Columns[колонка]. Font. Color, простым присваиванием (как мы это делали при форматировании). Если нужно изменить цвет отдельной ячейки, то это можно сделать, присвоив новое значение в Sheet.Cells[строка, колонка].Font.Color.
Вот ещё некоторые параметры, которые ты можешь изменить
Sheet.Cells[строка,колонка].Font.Italic — курсивный шрифт
Sheet.Cells[строка,колонка].Font.Bold — жирный шрифт
Sheet.Cells[строка,колонка].Font.Underline — подчёркнутый шрифт
Sheet.Cells[строка,колонка].Font.Size — размер шрифта
С помощью всего этого, ты сможешь создавать простые, но эффективные отчёты. В Delphi, в директории Lib есть файлик excel97.pas, в нём ты найдёшь все доступные функции Excel. Если у тебя есть достаточные навыки, чтобы разобраться с ним, то в перёд. А начинающему программисту там без бутылки не разобраться. Если ты относишься ко второй категории, то жди, возможно я ещё вернусь к этой теме.
«