delphi tabletoExecel
function TableToExcel(dsTable: TDataset; sFileName: string): Boolean;
var
MSExcel, Workbook, Worksheet : Variant;
I, J : Integer;
begin
Result := False;
try
MSExcel := CreateOleObject('Excel.Application');
except
//Error(cnInstallExcel);
Exit;
end;
try
Workbook := MSExcel.Workbooks.Add;
Worksheet := MSExcel.Workbooks[1].Worksheets[1];
with dsTable do
begin
First;
J := 1;
for I := 0 to Fields.Count - 1 do
begin
Worksheet.Columns[I + 1].NumberFormatLocal := '@';
Worksheet.Columns[I + 1].HorizontalAlignment := $FFFFEFDD;
Worksheet.Cells[1, I + 1] := Fields[I].FieldName;
end;
Worksheet.Rows[1].Font.Bold := True;
Worksheet.Rows[1].Font.ColorIndex := $00000003;
Worksheet.Rows[1].HorizontalAlignment := $FFFFEFF4;
while not Eof do
begin
for I := 0 to Fields.Count - 1 do
begin
try
Worksheet.Cells[J + 1, I + 1] := Fields[I].AsString;
except
Continue;
end;
end;
Next;
Inc(J);
end;
end;
if LowerCase(ExtractFileExt(sFileName)) <> 'xls' then
sFileName := ChangeFileExt(sFileName, '.xls');
Workbook.SaveAs(sFileName);
Result := True;
finally
Workbook.Saved := True;
MSExcel.Quit;
end;
end;
var
MSExcel, Workbook, Worksheet : Variant;
I, J : Integer;
begin
Result := False;
try
MSExcel := CreateOleObject('Excel.Application');
except
//Error(cnInstallExcel);
Exit;
end;
try
Workbook := MSExcel.Workbooks.Add;
Worksheet := MSExcel.Workbooks[1].Worksheets[1];
with dsTable do
begin
First;
J := 1;
for I := 0 to Fields.Count - 1 do
begin
Worksheet.Columns[I + 1].NumberFormatLocal := '@';
Worksheet.Columns[I + 1].HorizontalAlignment := $FFFFEFDD;
Worksheet.Cells[1, I + 1] := Fields[I].FieldName;
end;
Worksheet.Rows[1].Font.Bold := True;
Worksheet.Rows[1].Font.ColorIndex := $00000003;
Worksheet.Rows[1].HorizontalAlignment := $FFFFEFF4;
while not Eof do
begin
for I := 0 to Fields.Count - 1 do
begin
try
Worksheet.Cells[J + 1, I + 1] := Fields[I].AsString;
except
Continue;
end;
end;
Next;
Inc(J);
end;
end;
if LowerCase(ExtractFileExt(sFileName)) <> 'xls' then
sFileName := ChangeFileExt(sFileName, '.xls');
Workbook.SaveAs(sFileName);
Result := True;
finally
Workbook.Saved := True;
MSExcel.Quit;
end;
end;