Лекція № 28 (2 години)
Тема «Експорт даних в табличний процесор Excel»
Мета: знати як здійснювати експортування даних з БД, яка створена в СКБД Access, в табличний процесор Excel.
Література
«Работа с базами данных в Delphi» - Гофман В. Э., Санкт-Петербург: БХВ, 2001
«Программирование баз данных в Delphi 7. Учебный курс», В. В. Фаронов
«Delphi 5 руководство разработчика баз данных» - Шумаков, В. В. Фаронов
«Delphi 2005 Разработка приложений для баз данных и Интернета» - В. В. Фаронов, Питер, 2006 р.
Хід заняття
І. Організаційний момент
а) готовність групи до заняття;
б) перевірка присутніх.
ІІ. Актуалізація опорних знань студентів
а) повідомлення теми та мети заняття;
б) повідомлення девізу, під яким будете працювати;
в) відповіді на запитання раніше вивченних лекцій.
ІІІ. Виклад нового матеріалу
План
Модуль ComObj.
Експорт даних в табличний процесор Excel.
ІV. Узагальнення та систематизація знань
V. Підведення підсумків заняття
VІ. Домашнє завдання: вивчити матеріал лекції, знати відповіді на такі питання лекції:
Для чого потрібно підключати в розділ uses модуль ComObj?
Які дані може зберігати тип даних Variant?
Яка функція дозволяє налагодити зв'язок з іншим додатком за технологією COM?
Що означає число в дужках при створенні звітності в Excel -XLApp.Workbooks.Add(-4167)?
Завдяки якого методу компонента AdoTable можна перейти на перший рядок таблиці?
Головною властивістю баз даних є зберігання даних. Але яка ж база даних без звітності? Практично завжди виникає потреба у вивантаженні даних в інші програми. Немає сенсу вести дані, які не можна роздрукувати або вивантажити в інший формат.
Потреба у вивантаженні даних в Excel може виникнути у кожного програміста баз даних, адже Office встановлений практично на кожному комп'ютері. А це означає, що звітність можна переносити між комп'ютерами і бути упевненим, що її зможуть прочитати.
Для того, щоб здійснити експорт даних Excel, треба спочатку додати до програми пункт меню «Экспорт в Excel» в меню «Файл». Потім перейти в редактор кода й одразу ж додати в розділ uses модуль ComObj. У цьому модулі описані всі необхідні функції для роботи з COM об'єктами.
Після цього створити обробник для пункту меню. У цьому обробнику потрібно написати наступний код:
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:=20;
Colum.Columns[2].ColumnWidth:=20;
Colum.Columns[3].ColumnWidth:=20;
Colum.Columns[4].ColumnWidth:=20;
Colum.Columns[5].ColumnWidth:=20;
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]:='Телефонный справочник';
Sheet.Cells[2,1]:='Фамилия';
Sheet.Cells[2,2]:='Имя';
Sheet.Cells[2,3]:='Телефон';
Sheet.Cells[2,4]:='Город';
Sheet.Cells[2,5]:='Дата рождения';
index:=3;
DataModule1.BookTable.First;
for i:=0 to DataModule1.BookTable.RecordCount-1 do
begin
Sheet.Cells[index,1]:=DataModule1.BookTable.Fields.Fields[1].AsString;
Sheet.Cells[index,2]:=DataModule1.BookTable.Fields.Fields[2].AsString;
Sheet.Cells[index,3]:=DataModule1.BookTable.Fields.Fields[3].AsString;
Sheet.Cells[index,4]:=DataModule1.BookTable.Fields.Fields[6].AsString;
Sheet.Cells[index,5]:=FormatDateTime('dddddd',
DataModule1.BookTable.Fields.Fields[7].AsDateTime);