关于tclientdataset导出EXCEL的问题

tazhch 2003-04-17 11:19:41
怎样把数据导出EXCEP最有效率
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvloj 2003-04-17
  • 打赏
  • 举报
回复
可以试试下面的方案
with ClientDataSet do
begin
DisableControls;//断开数据连接
try
//可以按"字段 TAB 字段"的格式保存到StringList或文本文件,然后调用Excel粘贴或读取.
//Excel的调用一搜一大把,不用写出来了吧.
……;
finally
EnableControls;//恢复数据连接
end;
end;
yu98041154 2003-04-17
  • 打赏
  • 举报
回复
关注,我正想问呢
jiezhi 2003-04-17
  • 打赏
  • 举报
回复
转贴:
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

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧