在delphi中,从dbgrid导出数据保存成excel文件
2010-07-19 14:23
1351 查看
实验了,很好用
function TForm1.ExportDBGrid(DBGrid: TDBGrid; SheetName: string): boolean;//直接保存,不显示EXCEL
var
c, r, i, j: integer;
app: Olevariant;
TempFileName, ResultFileName: string;
begin
try
result := True;
app := CreateOLEObject('Excel.application');
// app.WorkBooks.Add(xlWBatWorkSheet);
except
Application.MessageBox('Excel没有正确安装!','警告',MB_OK);
result := False;
exit;
end;
SaveDialog1.DefaultExt := 'xls';
SaveDialog1.FileName := SheetName;
if SaveDialog1.Execute then
TempFileName := SaveDialog1.FileName
else
Exit;
app.Workbooks.add;
app.Visible := false;
Screen.Cursor := crHourGlass;
DBGrid.DataSource.DataSet.First;
c := DBGrid.DataSource.DataSet.FieldCount;
r := DBGrid.DataSource.DataSet.RecordCount;
Application.ProcessMessages;
for i := 0 to c - 1 do
app.cells(1, 1 + i) := DBGrid.DataSource.DataSet.Fields[i].DisplayLabel;
for j := 1 to r do
begin
for i := 0 to c - 1 do
app.cells(j + 1, 1 + i) := DBGrid.DataSource.DataSet.Fields[i].AsString;
DBGrid.DataSource.DataSet.Next;
end;
ResultFileName := TempFileName;
if ResultFileName = '' then
ResultFileName := '数据导出';
if FileExists(TempFileName) then
DeleteFile(TempFileName);
app.Activeworkbook.saveas(TempFileName);
app.Activeworkbook.close(false);
app.quit;
app := unassigned;
end;
procedure TForm1.Button2Click(Sender: TObject); //按钮保存
begin
try
Screen.Cursor := crHourGlass;
ExportDBGrid(DBGrid1, '导出数据'); //暂时将导出的文件名称为“导出数据”(的execl文件)
finally
Screen.Cursor := crDefault;
end;
end;
function TForm1.ExportDBGrid(DBGrid: TDBGrid; SheetName: string): boolean;//直接保存,不显示EXCEL
var
c, r, i, j: integer;
app: Olevariant;
TempFileName, ResultFileName: string;
begin
try
result := True;
app := CreateOLEObject('Excel.application');
// app.WorkBooks.Add(xlWBatWorkSheet);
except
Application.MessageBox('Excel没有正确安装!','警告',MB_OK);
result := False;
exit;
end;
SaveDialog1.DefaultExt := 'xls';
SaveDialog1.FileName := SheetName;
if SaveDialog1.Execute then
TempFileName := SaveDialog1.FileName
else
Exit;
app.Workbooks.add;
app.Visible := false;
Screen.Cursor := crHourGlass;
DBGrid.DataSource.DataSet.First;
c := DBGrid.DataSource.DataSet.FieldCount;
r := DBGrid.DataSource.DataSet.RecordCount;
Application.ProcessMessages;
for i := 0 to c - 1 do
app.cells(1, 1 + i) := DBGrid.DataSource.DataSet.Fields[i].DisplayLabel;
for j := 1 to r do
begin
for i := 0 to c - 1 do
app.cells(j + 1, 1 + i) := DBGrid.DataSource.DataSet.Fields[i].AsString;
DBGrid.DataSource.DataSet.Next;
end;
ResultFileName := TempFileName;
if ResultFileName = '' then
ResultFileName := '数据导出';
if FileExists(TempFileName) then
DeleteFile(TempFileName);
app.Activeworkbook.saveas(TempFileName);
app.Activeworkbook.close(false);
app.quit;
app := unassigned;
end;
procedure TForm1.Button2Click(Sender: TObject); //按钮保存
begin
try
Screen.Cursor := crHourGlass;
ExportDBGrid(DBGrid1, '导出数据'); //暂时将导出的文件名称为“导出数据”(的execl文件)
finally
Screen.Cursor := crDefault;
end;
end;
相关文章推荐
- Delphi+DBGrid导出Excel文件代码 (适合没有安装excel的机器)
- delphi将DBGRID数据导出到EXCEL表中
- winform 中 将listview数据 以excel格式导出 保存在可选择的文件夹下 但文件打开的时候有问题
- 保存DBGRID数据到EXCEL文件中
- delphi将DBGRID数据导出到EXCEL表中
- 在delphi中,从dbgrid导出数据保存成excel文件
- Delphi编程保存数据到Excel文件(1):控件总览
- delphi导出数据至Excel的七种方法及比较
- 导出表中的数据到Excel,包含字段名,文件为真正的Excel文件
- WinForm中DataGrid扩展类 - 快速导出Excel文件,带保存对话框,并杀死进程。相对完美的解决方案[转http://yuunagi.blogbus.com/logs/38361340.html]
- 如何将Excel和xml文件数据保存到数据库
- 如何将DataGrid中的数据导出到Excel文件中
- 一些关于从数据库导出数据到word、excel、.txt文本文件的代码
- 大量数据导出为Excel文件的问题解决
- Datagrid数据导出到excel文件的三种方法
- 使用DevExpress导出GridControl控件数据到excel文件
- 将DataTable数据导出到Excel文件中(xls)
- winform 导出数据到指定文件夹 excel格式 但是有重复的文件就报错
- java web将数据导出为Excel格式文件代码片段
- 数据导出成Excel文件,关于字符集的问题