Звітність в Excel h2>
Наша
завдання створити звітність в Excel. Ця потреба може виникнути в кожного
програміста баз даних, адже Office встановлений в нашій країні практично на
кожному комп'ютері. А це означає, що вашу звітність можна сміливо переносити
між комп'ютерами і бути впевненим, що її зможуть прочитати. p>
Спочатку
я покажу повністю процедуру, тому що исходников в кінці статті не буде, а
потім ми розберемо її по кісточках: p>
procedure
TForm1.Button1Click (Sender: TObject); p>
var p>
XLApp, Sheet, Colum: Variant; p>
index, i: Integer; p>
begin p>
XLApp: =
CreateOleObject ( 'Excel.Application'); p>
XLApp.Visible: = true; p>
XLApp.Workbooks.Add (-4167); p>
XLApp.Workbooks [1]. WorkSheets [1]. Name: = 'Звіт'; p>
Colum: = XLApp.Workbooks [1]. WorkSheets [ 'Звіт']. Columns; p>
Colum.Columns [1]. ColumnWidth: = 40; p>
Colum.Columns [2]. ColumnWidth: = 10; p>
Colum.Columns [3]. ColumnWidth: = 30; p>
Colum.Columns [4]. ColumnWidth: = 10; p>
Colum: = XLApp.Workbooks [1]. WorkSheets [ 'Звіт']. Rows; p>
Colum.Rows [2]. Font.Bold: = true; p>
Colum.Rows [1]. Font.Bold: = true; p>
Colum.Rows [1]. Font.Color: = clBlue; p>
Colum.Rows [1]. Font.Size: = 14; p>
Sheet: = XLApp.Workbooks [1]. WorkSheets [ 'Звіт']; p>
Sheet.Cells [1,2]: = 'Звіт з Delphi'; p>
Sheet.Cells [2,1]: = 'Колонка 1'; p>
Sheet.Cells [2,2]: = 'Колонка 2'; p>
Sheet.Cells [2,3]: = 'Колонка 3'; p>
Sheet.Cells [2,4]: = 'Колонка 4';
p>
index: = 3; p>
for i: = 0 to 2 do p>
begin p>
Sheet.Rows [index]. Font.Color: = clGreen; p>
Sheet.Cells [index, 1]: = random (100); p>
Sheet.Cells [index, 2]: = random (100); p>
Sheet.Cells [index, 3]: = random (100); p>
Sheet.Cells [index, 4]. Font.Color: = clRed; p>
Sheet.Cells [index, 4]: = random (100); p>
Inc (index); p>
end; p>
end; p>
Для
того, щоб все це працювало, потрібно підключити до розділу Uses модуль ComObj. А
тепер почнемо все з самого початку. p>
Перша
рядок створює об'єкт Excel (XLApp: = CreateOleObject ( 'Excel.Application')), і
записує його в змінну XLApp. Ця змінна типу Variant. Variant - це
тип, який може приймати будь-які значення: рядки, числа, покажчики та ін
Другий рядок (XLApp.Visible: = true) змушує запустити сам Excel. Потім я
додаю нову робочу книгу (XLApp.Workbooks.Add (-4167)). Число в дужках --
це константа, яка означає створення книги та її змінювати не можна. Далі я
даю назву створеної книзі XLApp.Workbooks [1]. WorkSheets [1]. Name: = 'Звіт'.
Ця дія не обов'язково, але я завжди це роблю, тому що мене дратує
назву за замовчуванням "Лист 1". p>
Тепер
у нас Excel запущений і створена нова книга. Можна переходити до вдруковування
даних. Але перш ніж це зробити я відформатуйте колонки і рядки. Для цього я
отримую покажчик на колонки робочої книги (Colum: = XLApp. Workbooks [1].
WorkSheets [ 'Звіт']. Columns), і записую результат в змінну Colum типу
Variant. Тепер послідовно змінюю ширину колонок (Colum. Columns [1]. ColumnWidth
: = 40). На русском ця команда буде звучати так: Колонки. Колонка [1].
ШірінаКолонкі: = 40. p>
Після
цього я в ту ж змінну записую покажчик на рядки робочої книги (Colum
: = XLApp. Workbooks [1]. WorkSheets [ 'Звіт']. Rows). Для прикраси рядків нашого
звіту, я встановлюю у перших двох рядків жирний шрифт (Colum. Rows [1]. Font.
Bold: = true). У квадратних дужках тепер порядковий номер рядка. Далі йдуть
два рядки, в яких я встановлюю колір першого рядка в синій і розмір шрифту
рівний 14. p>
Форматування
закінчено, тепер можна виводити дані. Для цього я отримую покажчик на лист
(Sheet: = XLApp.Workbooks [1]. WorkSheets [ 'Звіт']). Для того, щоб вивести
дані, потрібно просто мати значення в Sheet.Cells [рядок, колонки]. У
процесі виведення даних можна змінювати колір строк Sheet. Rows [рядок]. Font.
Color або колонок Sheet. Columns [колонка]. Font. Color, простим привласненням
(як ми це робили під час форматування). Якщо потрібно змінити колір окремої
осередку, то це можна зробити, присвоївши нове значення в Sheet.Cells [рядок,
колонка]. Font.Color. p>
Ось
ще деякі параметри, які ти можеш змінити: p>
Sheet.Cells [рядок, колонка]. Font.Italic
- Курсивний шрифт p>
Sheet.Cells [рядок, колонка]. Font.Bold
- Жирний шрифт p>
Sheet.Cells [рядок, колонка]. Font.Underline
- Підкреслений шрифт p>
Sheet.Cells [рядок, колонка]. Font.Size
- Розмір шрифту p>
З
допомогою всього цього, ти зможеш створювати прості, але ефективні звіти. У
Delphi, в директорії Lib є файлик excel97.pas, в ньому ти знайдеш все
доступні функції Excel. Якщо у тебе є достатні навички, щоб розібратися
з ним, то в перед. А починаючому програмісту там без пляшки не розібратися.
Якщо ти ставишся до другої категорії, то чекай, можливо я ще повернуся до цієї
темі. p>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://vlad2000.h1.ru/
p>