delphi 导出 dbgrid的数据 excel word都可以 最好 简单一点
1个回答
展开全部
用dbgrideh更好些 导出excel也方便些
非要用 dbgrid 那就用我抄袭来的函数
procedure DBGridInFoToExcel(FileName, TitleCaption: string;
MakeDataSource: TDataSource; makeDBGrid: TDBGrid);
var
xlApp, xlSheet, szValue: Variant;
ARow, iLoop: word;
begin
xlApp := CreateOleObject('Excel.Application');
try
xlSheet := CreateOleObject('Excel.Sheet');
xlSheet := xlApp.WorkBooks.Add;
// 表格标题
for iLoop := 0 to makeDBGrid.Columns.Count - 1 do
xlSheet.WorkSheets[1].Cells[1, iLoop + 1] := makeDBGrid.Columns[iLoop].Title.Caption;
// 数据
ARow := 2;
with MakeDataSource.DataSet do
begin
DisableControls;
First;
while not Eof do
begin
for iLoop := 0 to Fields.Count - 1 do
begin
szValue := Fields[iLoop].Value;
xlSheet.WorkSheets[1].Cells[ARow, iLoop + 1] := szValue;
end;
inc(ARow);
Next;
end;
First;
EnableControls;
end;
try
xlSheet.SaveAs(FileName);
Application.MessageBox('导出完毕!', '提示', MB_IconExclamation);
finally
xlSheet.Close;
xlApp.Quit;
xlApp := UnAssigned;
end;
except
Application.MessageBox('本机没有安装Excel.', '错误', MB_OK);
end;
end;
//调用:
//参数1:导出Excel的文件名称
//参数2:Excel的第一行标题(本例代码中去掉了这个功能,所以传空)
//参数3:与DBGrid连接的DataSouce
//参数4:要导出的DBGrid
DBGridInFoToExcel(AFileName, '', ADataSource, DBGrid1);
非要用 dbgrid 那就用我抄袭来的函数
procedure DBGridInFoToExcel(FileName, TitleCaption: string;
MakeDataSource: TDataSource; makeDBGrid: TDBGrid);
var
xlApp, xlSheet, szValue: Variant;
ARow, iLoop: word;
begin
xlApp := CreateOleObject('Excel.Application');
try
xlSheet := CreateOleObject('Excel.Sheet');
xlSheet := xlApp.WorkBooks.Add;
// 表格标题
for iLoop := 0 to makeDBGrid.Columns.Count - 1 do
xlSheet.WorkSheets[1].Cells[1, iLoop + 1] := makeDBGrid.Columns[iLoop].Title.Caption;
// 数据
ARow := 2;
with MakeDataSource.DataSet do
begin
DisableControls;
First;
while not Eof do
begin
for iLoop := 0 to Fields.Count - 1 do
begin
szValue := Fields[iLoop].Value;
xlSheet.WorkSheets[1].Cells[ARow, iLoop + 1] := szValue;
end;
inc(ARow);
Next;
end;
First;
EnableControls;
end;
try
xlSheet.SaveAs(FileName);
Application.MessageBox('导出完毕!', '提示', MB_IconExclamation);
finally
xlSheet.Close;
xlApp.Quit;
xlApp := UnAssigned;
end;
except
Application.MessageBox('本机没有安装Excel.', '错误', MB_OK);
end;
end;
//调用:
//参数1:导出Excel的文件名称
//参数2:Excel的第一行标题(本例代码中去掉了这个功能,所以传空)
//参数3:与DBGrid连接的DataSouce
//参数4:要导出的DBGrid
DBGridInFoToExcel(AFileName, '', ADataSource, DBGrid1);
追问
DBGridInFoToExcel 在events里面没有找到 请问在哪里呀?
追答
这个是自定义的函数啊 不是自带的 我上面写了啊
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询