怎样将adoquery查询后的记录,单击后保存或输出为excel文件!!急!要实例!给分! 怎样将adoquery查询后的记录,单击后保存或输出为excel文件!!急!要实例!给分!不在意分,现在是救急,谢了!!!要实例!!要实例!!要实例![email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, OleServer, Excel2000, Grids, DBGrids, DBClient;type TForm1 = class(TForm) private { Private declarations } public procedure WriteExcel(AdsData: Tclientdataset; sName, Title: string); { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}PROCEDURE Tform1.WriteExcel(AdsData:Tclientdataset; sName, Title: string);var ExcelApplication1: TExcelApplication; ExcelWorksheet1: TExcelWorksheet; ExcelWorkbook1: TExcelWorkbook; i, j: integer; filename: string;begin filename := concat(sName, '.xls'); try ExcelApplication1 := TExcelApplication.Create(Application); ExcelWorksheet1 := TExcelWorksheet.Create(Application); ExcelWorkbook1 := TExcelWorkbook.Create(Application); ExcelApplication1.Connect; except Application.Messagebox('Excel没有安装!','Hello',MB_ICONERROR + mb_Ok); Abort; end; try ExcelApplication1.Workbooks.Add(EmptyParam, 0); ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet); AdsData.First; for j := 0 to AdsData.Fields.Count - 1 do begin ExcelWorksheet1.Cells.item[3, j + 1] := AdsData.Fields[j].DisplayLabel; ExcelWorksheet1.Cells.item[3, j + 1].font.size :='10'; end; for i := 4 to AdsData.RecordCount + 3 do begin for j := 0 to AdsData.Fields.Count - 1 do begin ExcelWorksheet1.Cells.item[i, j + 1] := AdsData.Fields[j].Asstring; ExcelWorksheet1.Cells.item[i, j + 1].font.size := '10'; end; AdsData.Next; end; ExcelWorksheet1.Columns.AutoFit; ExcelWorksheet1.Cells.item[1, 2] := Title; ExcelWorksheet1.Cells.Item[1, 2].font.size :='14'; ExcelWorksheet1.SaveAs(filename); Application.Messagebox(pchar('数据成功导出'+ filename),'信息化建设部',mb_Ok); finally ExcelApplication1.Disconnect; ExcelApplication1.Quit; ExcelApplication1.Free; ExcelWorksheet1.Free; ExcelWorkbook1.Free; end;end;end.一个 函数搞定 怎样将adoquery查询后的记录,单击后保存或输出为excel文件!!急!要实例!给分!不在意分,现在是救急,谢了!!!我是初学者看不太清楚,能不能发个实例来让我看看,只要能完成这个功能的就行在此多谢了!!![email protected] tiexinliu(铁心刘) 怎样将adoquery查询后的记录,单击后保存或输出为excel文件!!急!要实例!给分!不在意分,现在是救急,谢了!!!我是初学者看不太清楚,能不能发个实例来让我看看,只要能完成这个功能的就行在此多谢了!!![email protected] 按上位大侠供的代码放到程序中,假设你的Query名为Query1,按钮为Button1,则在Button1.click中加入如下代码即可:WriteExcel(Query1,'c:\temp.xls','EXCEL电子表格');其中,c:\temp.xls为保存文件名,'EXCEL电子表格'为标题. 用存储过程:create procedure to_excel @sql varchar(500)asdeclare @cmd varchar(500) set @cmd = 'bcp "' +rtrim(@sql)+'" queryout c:\temp.xls -c -S you_servername -U sa -P you_password' exec master..xp_cmdshell @cmdGO tiexinliu(铁心刘) 方法真的很不错!五个星呀,重量级呀!! tiexinliu(铁心刘) 方法真的很不错!五个星呀,重量级呀!!你是说 hmily1688(流浪在中国_戒网中...) 写的码吗??你说好我一点也不懂!!是你发代码给我的吗?你的邮件是什么,写对了我把分给你!!! tiexinliu (18)的方法是好方法,但是导出多条数据时太慢了. 晕菜,发邮件的是我啊liutaotao168#163.com是这个数据吧 求可以 连接 mysql 5.1 的新版 的 mydac 控件 能在 D7 下安装 的 一句话 C译delphi 求控件 Delphi的 TScrollText 控件和TBitmap 如此大的Exe,你见过吗? 程序报这样的错:asynchronous error 10038 请问哪儿可以找到背景是透明的Memo控件? Teechart7中的饼图百分比之和为何不等于100%?? 继承DBGRID开发的DBGRID控件,有列锁定功能,有源码,有人要吗? 请问这样的报表应该怎样设计更好???谢谢 还是关于webbrowser的新问题? 关于网页代码分析的问题~ 如何访问网络上的共享文件?
interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, OleServer, Excel2000, Grids, DBGrids,
DBClient;type
TForm1 = class(TForm)
private
{ Private declarations }
public
procedure WriteExcel(AdsData: Tclientdataset; sName, Title: string);
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}PROCEDURE Tform1.WriteExcel(AdsData:Tclientdataset; sName, Title: string);
var
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
i, j: integer;
filename: string;
begin
filename := concat(sName, '.xls');
try
ExcelApplication1 := TExcelApplication.Create(Application);
ExcelWorksheet1 := TExcelWorksheet.Create(Application);
ExcelWorkbook1 := TExcelWorkbook.Create(Application);
ExcelApplication1.Connect;
except
Application.Messagebox('Excel没有安装!','Hello',MB_ICONERROR + mb_Ok);
Abort;
end;
try
ExcelApplication1.Workbooks.Add(EmptyParam, 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
AdsData.First;
for j := 0 to AdsData.Fields.Count - 1 do
begin
ExcelWorksheet1.Cells.item[3, j + 1] := AdsData.Fields[j].DisplayLabel;
ExcelWorksheet1.Cells.item[3, j + 1].font.size :='10';
end;
for i := 4 to AdsData.RecordCount + 3 do
begin
for j := 0 to AdsData.Fields.Count - 1 do
begin
ExcelWorksheet1.Cells.item[i, j + 1] :=
AdsData.Fields[j].Asstring;
ExcelWorksheet1.Cells.item[i, j + 1].font.size := '10';
end;
AdsData.Next;
end;
ExcelWorksheet1.Columns.AutoFit;
ExcelWorksheet1.Cells.item[1, 2] := Title;
ExcelWorksheet1.Cells.Item[1, 2].font.size :='14';
ExcelWorksheet1.SaveAs(filename);
Application.Messagebox(pchar('数据成功导出'+ filename),'信息化建设部',mb_Ok);
finally
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
ExcelApplication1.Free;
ExcelWorksheet1.Free;
ExcelWorkbook1.Free;
end;
end;end.
一个 函数搞定
在Button1.click中加入如下代码即可:
WriteExcel(Query1,'c:\temp.xls','EXCEL电子表格');
其中,c:\temp.xls为保存文件名,'EXCEL电子表格'为标题.
create procedure to_excel
@sql varchar(500)
as
declare @cmd varchar(500)
set @cmd = 'bcp "' +rtrim(@sql)+'" queryout c:\temp.xls -c -S you_servername -U sa -P you_password'
exec master..xp_cmdshell @cmdGO