Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.11;
Скачать: CL | DM;

Вниз

Экспорт баз данных в Excel вместе с полями БД   Найти похожие ветки 

 
Картошка ©   (2006-12-08 19:05) [0]

В интернете нарыл такой вот код для экспорта баз данных в Excel
procedure TForm1.BtnExportClick(Sender: TObject);
var
XL, XArr: Variant;
i: Integer;
j: Integer;
begin
{не забудьте включить ComObj в список используемых модулей}
// Создаем массив элементов, полученных в результате запроса
XArr:=VarArrayCreate([1,TableDB.FieldCount],varVariant);
XL:=CreateOLEObject("Excel.Application");     // Создание OLE объекта
XL.WorkBooks.add;
XL.visible:=true;

j := 1;
TableDB.First;
while not TableDB.Eof do
 begin
  i:=1;
  while i<=TableDB.FieldCount do
   begin
    XArr[i] := TableDB.Fields[i-1].Value;
    i := i+1;
   end;
  XL.Range["A"+IntToStr(j),
  CHR(64+TableDB.FieldCount)+IntToStr(j)].Value := XArr;
  TableDB.Next;
  j:=j+1;
 end;
XL.Range["A1",CHR(64+TableDB.FieldCount)+IntToStr(j)].select;
// XL.cells.select;                     // Выбираем все
XL.Selection.Font.Name:="Arial cur";
XL.Selection.Font.Size:=10;
XL.selection.Columns.AutoFit;
XL.Range["A1","A1"].select;
end;

Все бы хорошо..НО, название полей при этом не эспортируется....Что бы такого поменять в этом коде и для экспорт полей мне лично не понятно....
Может кто знает??? Или можно как-то по другому экспортировать?


 
umbra ©   (2006-12-08 19:10) [1]

надо просто перед экспортом данных записать в эксель имена полей. Кроме того, вставлять в эксель по одной строке - долго. Лучше вставлять кусками побольше.


 
Картошка ©   (2006-12-15 02:42) [2]


> надо просто перед экспортом данных записать в эксель имена
> полей.

И как это сделать???


 
Ильдар ©   (2006-12-15 09:25) [3]

Вот пример из библии Delphi
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]:="e-mail";
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[5].AsString;
Sheet.Cells[index,5]:=FormatDateTime("dddddd",
DataModule1.BookTable.Fields.Fields[6].AsDateTime);
Inc(index);
DataModule1.BookTable.Next;
end;



Страницы: 1 вся ветка

Текущий архив: 2007.03.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.059 c
15-1170606148
DemonP
2007-02-04 19:22
2007.03.11
Electronics Workbench.512


15-1171357876
max999
2007-02-13 12:11
2007.03.11
Мастера, помогите ламаку)


2-1171959942
Толибас
2007-02-20 11:25
2007.03.11
TdxDBGridLookupColumn


2-1171639805
@gent
2007-02-16 18:30
2007.03.11
Создание папки


1-1169200353
Apachi
2007-01-19 12:52
2007.03.11
как мониторить значения ячеек в екселе