Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания лабы БД программисты.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
797.7 Кб
Скачать

Лабораторная работа №14 Тема: Экспорт и импорт данных в Word, Excel

Цель: Изучить вкладку Servers, способы экспорта и импорта данных в Word, Excel.

Задание:

  1. Изучить вкладку Servers.

  2. Изучить способы экспорта и импорта данных в Word, Excel.

  3. Осуществить экспорт и импорт данных в Word, Excel.

Экспорт в ms excel

  1. Добавляем в раздел uses модуль ComObj, в котором описаны все необходимые функции для работы с COM – объектами;

  2. Создаём обработчик события для пункта меню Экспорт – Excel. В обработчике прописываем следующий код программы:

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;

DataModule2.TStydent.First;

for i:=0 to DataModule2.TStydent.RecordCount-1 do

begin

Sheet.Cells[index,1]:=DataModule2.TStydent.Fields.Fields[1].AsString;

Sheet.Cells[index,2]:=DataModule2.TStydent.Fields.Fields[2].AsString;

Sheet.Cells[index,3]:=DataModule2.TStydent.Fields.Fields[3].AsString;

Sheet.Cells[index,4]:=DataModule2.TStydent.Fields.Fields[4].AsString;

Sheet.Cells[index,5]:=DataModule2.TStydent.Fields.Fields[5].AsString;

Inc(index);

DataModule2.TStydent.Next;

end;

end;

Строка:

XLApp:= CreateOleObject('Excel.Application');

создаёт объект Excel и записывает его в переменную XLApp. Эта переменная типа Variant., которая может принимать любые значения : строки, числа, указатели и др .

Функция CreateOleObject позволяет наладить связь с другим приложением по технологии COM. Через эту связь можно передавать данные в чужие приложения. Для этого программа, к которой мы присоединяемся, должна иметь возможности для получения данных извне (как, например , Excel).

Строка XLApp.Visible:=true;

заставляет запустить сам Excel.

Добавляем новую рабочую книгу: XLApp.Workbooks.Add(-4167);

Число в скобках – это константа, которая означает создание книги и её изменять нельзя.

Даём название созданной книге:

XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт ';

Теперь Excel запущен и создана новая книга. Можно переходить к впечатыванию данных. Но прежде чем это сделать, необходимо отформатировать колонки и строки. Для этого получаем указатель на колонки рабочей книги:

Colum:= XLApp. Workbooks[1].WorkSheets['Отчёт ']. Columns;

и записываем результат в переменную Colum типа Variant.

Теперь последовательно изменяем ширину колонок:

Colum.Columns[1].ColumnWidth:=20;

После этого в ту же переменную записываем указатель на строки рабочей книги:

Colum := XLApp. Workbooks[1]. WorkSheets['Отчёт ']. Rows;

Устанавливаем у первых двух строк жирный шрифт:

Colum. Rows[1]. Font.Bold := true;

В квадратных скобках теперь порядковый номер строки.

Далее идут две строки, в которых устанавливаем цвет первой строки в синий и размер шрифта равный 14:

Colum.Rows[1].Font.Color:=clBlue;

Colum.Rows[1].Font.Size:=14;

Форматирование окончено, теперь можно выводить данные. Для этого необходимо получить указатель на лист:

Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт '];

Для того , чтобы вывести данные , нужно просто присвоить значение в

Sheet.Cells[строка , колонки ].

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

ВНИМАНИЕ! Строки и таблицы в Excel нумеруются с единицы, а не с нуля, как в остальных таблицах и массивах.

После этого переходим на первую строку нашей таблицы с помощью метода First компонента Table. Это необходимо, потому что пользователь может перед нажатием кнопки отчёта выделить любую строку в середине таблицы и в этом случае отчёт пойдёт от этой выделенной строки.

Теперь необходимо запустить цикл, в котором будут перебираться все строки, и информация из них будет попадать в Excel. Цикл запускаем, начиная с 0 и до количества строк в таблице. Таким образом перебираем все записи.

Теперь последовательно заполняем колонки данными из таблицы, присваивая в Sheet.Cells[index, номер колонки ] соответствующие данные.

Данные из базы данных берём по индексу. Для этого используется:

DataModule1.TStydent.Fields.Fields[Номер поля].AsString;

После вывода данных увеличиваем переменную Index, чтобы на следующем этапе выводить данные в следующую строку, и переходим на новую строку.