关于tclientdataset导出EXCEL的问题 怎样把数据导出EXCEP最有效率 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以试试下面的方案with ClientDataSet dobegin DisableControls;//断开数据连接 try //可以按"字段 TAB 字段"的格式保存到StringList或文本文件,然后调用Excel粘贴或读取. //Excel的调用一搜一大把,不用写出来了吧. ……; finally EnableControls;//恢复数据连接 end;end; 转贴:type TForm1 = class(TForm) ADOQuery1: TADOQuery; Button1: TButton; procedure Button1Click(Sender: TObject); private FExcelBook: TExcelWorkBook; FExcelSheet: TExcelWorkSheet; FExcelApp: TExcelApplication; procedure DataSetToExcel(AFileName: string); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DataSetToExcel(AFileName: string);begin try FExcelApp.Visible[0] := False; try FExcelBook.ConnectTo(FExcelApp.Workbooks.Add(EmptyParam, 0)); except raise Exception.Create('连接到Excel文件出错,可能是没有安装Excel软件'); end; FExcelSheet.ConnectTo(FExcelBook.Worksheets[1] as _WorkSheet); with FExcelSheet.QueryTables.Add(ADOQuery1.Recordset, FExcelSheet.Range['A3', EmptyParam], EmptyParam) do begin FieldNames := False; Refresh(False); end; FExcelSheet.Columns.Item[3, EmptyParam].NumberFormatLocal := 'yyyy-mm-dd'; FExcelBook.SaveCopyAs(AFileName); FExcelBook.Close(False); finally FExcelApp.Quit; FExcelSheet.Disconnect; FExcelBook.Disconnect; FExcelApp.Disconnect; end;end;{ TForm1 }constructor TForm1.Create(AOwner: TComponent);begin inherited; FExcelApp := TExcelApplication.Create(Self); FExcelBook := TExcelWorkBook.Create(Self); FExcelSheet := TExcelWorkSheet.Create(Self);end;destructor TForm1.Destroy;begin FExcelSheet.Free; FExcelBook.Free; FExcelApp.Free; inherited;end;procedure TForm1.Button1Click(Sender: TObject);begin Caption := 'begin open'; with ADOQuery1 do begin if not Active then begin SQL.Text := 'select * from mytable'; Open; end; DataSetToExcel('c:\a.xls'); end;end;这是利用Excel内置的功能,其它的功能各位再试试了。还有一篇是直接写Excel文件格式的:http://www.delphibbs.com/delphibbs/dispq.asp?lid=1051160 最近几天心情相当不爽,到处受气!倒点分,鼓励一下自己 请教关于DELPHI编写GPRS服务程序的问题。 delphi如何读写x.509数字证书? 当进程被杀死时,执行的程序代码段如何写?(急) 我成功了! 请问对一个字串取子串怎么做? delphi问题2? delphi如何读取硬件信息 请各位高手指教! 是这个论坛的出毛病了,还是我的浏览器坏了? 有没有用Delphi做过医疗监护软件的朋友?想跟您探讨一下医疗软件方面的问题。请多多指教!!! DirectShow的问题
with ClientDataSet do
begin
DisableControls;//断开数据连接
try
//可以按"字段 TAB 字段"的格式保存到StringList或文本文件,然后调用Excel粘贴或读取.
//Excel的调用一搜一大把,不用写出来了吧.
……;
finally
EnableControls;//恢复数据连接
end;
end;
type
TForm1 = class(TForm)
ADOQuery1: TADOQuery;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
FExcelBook: TExcelWorkBook;
FExcelSheet: TExcelWorkSheet;
FExcelApp: TExcelApplication;
procedure DataSetToExcel(AFileName: string);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DataSetToExcel(AFileName: string);
begin
try
FExcelApp.Visible[0] := False;
try
FExcelBook.ConnectTo(FExcelApp.Workbooks.Add(EmptyParam, 0));
except
raise Exception.Create('连接到Excel文件出错,可能是没有安装Excel软件');
end;
FExcelSheet.ConnectTo(FExcelBook.Worksheets[1] as _WorkSheet);
with FExcelSheet.QueryTables.Add(ADOQuery1.Recordset, FExcelSheet.Range['A3', EmptyParam], EmptyParam) do
begin
FieldNames := False;
Refresh(False);
end;
FExcelSheet.Columns.Item[3, EmptyParam].NumberFormatLocal := 'yyyy-mm-dd';
FExcelBook.SaveCopyAs(AFileName);
FExcelBook.Close(False);
finally
FExcelApp.Quit;
FExcelSheet.Disconnect;
FExcelBook.Disconnect;
FExcelApp.Disconnect;
end;
end;{ TForm1 }constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
FExcelApp := TExcelApplication.Create(Self);
FExcelBook := TExcelWorkBook.Create(Self);
FExcelSheet := TExcelWorkSheet.Create(Self);
end;destructor TForm1.Destroy;
begin
FExcelSheet.Free;
FExcelBook.Free;
FExcelApp.Free;
inherited;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := 'begin open';
with ADOQuery1 do
begin
if not Active then
begin
SQL.Text := 'select * from mytable';
Open;
end;
DataSetToExcel('c:\a.xls');
end;
end;这是利用Excel内置的功能,其它的功能各位再试试了。还有一篇是直接写Excel文件格式的:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1051160