Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Perechen_vsekh_laboratorny_rabot.doc
Скачиваний:
6
Добавлен:
10.05.2015
Размер:
2.31 Mб
Скачать

XlApp,Sheet,Colum:Variant;

Index,I:Integer;

begin

XLApp:= CreateOleObject('Excel.Application'); { строка создаёт объект Excel и записывает его в переменную XLApp.}

XLApp.Visible:=true; { строка заставляет запустить сам Excel.}

XLApp.Workbooks.Add(-4167); { добавляем новую рабочую книгу. Число в скобках – это константа, которая означает создание книги и её изменять нельзя. }

XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт'; { даtv название созданной книге. Это действие не обязательно, но тогда будет название по умолчанию "Лист 1".}

{ Теперь у нас Excel запущен и создана новая книга. Можно переходить к

впечатыванию данных. Но прежде чем это сделать отформатируем колонки и строки. Для этого получаем указатель на колонки рабочей книги Colum.}

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. Для того, чтобы вывести данные, нужно просто присвоить значение в Sheet.Cells[строка, колонки].

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

Sheet.Cells[1,2]:='Телефонный справочник';

Sheet.Cells[2,1]:='Фамилия';

Sheet.Cells[2,2]:='Имя';

Sheet.Cells[2,3]:='e-mail';

Sheet.Cells[2,4]:='Город';

Sheet.Cells[2,5]:='Дата рождения';

{Далее работаем с записями таблицы}I

ndex:=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[5].AsString;

Sheet.Cells[index,5]:=FormatDateTime('dddddd',

DataModule1.BookTable.Fields.Fields[6].AsDateTime);

Inc(index);

DataModule1.BookTable.Next;

end;

Можно использовать следующий способ вывод данных из сетки:

for i:=1 to Table.RecordCount do

begin

for j:=1 to DBGrid.Columns.Count do

Sheet.Cells[Index, j]:=DBGrid.Fields[j-1].AsString;

Inc(Index);

Table.Next;

end;

Это просто общий пример не связанный с нашей программой. Здесь так же запускается цикл по всем строкам таблицы. Но вывод данных просходит по новому. Для этого запускается ещё один цикл от 1 до количества колонок в сетке DBGrid. А внутри этого цикла присваивается очередной колонке Excel, значение из такой же колонки сетки DBGrid.

Список литературы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]