delphi中如何往excel中写入数据(100分)

  • 主题发起人 主题发起人 tanghh
  • 开始时间 开始时间
T

tanghh

Unregistered / Unconfirmed
GUEST, unregistred user!
我用sql server+delphi做MIS系统,现在用户要求将从sql server 中查询出来的数据保存到excel表格中,请高手指点。谢谢
 
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=446727
 
用自动化对象,在看看excel的对象模型
 
使用ADOExpress创建Microsoft Excel 浏览器
作者: David Intersimone
日期: 2000年08月22日
.打开Delphi,创建新的Application。

2.在Form中放置ADODataSet

3.将CommandType的属性设为cmdTableDirect。
ADODataSet和BDEDataSet访问数据表相类似。对于ADO来说,要说明数据源然后利用数据感
知(data-aware)控件将数据显示在应用程序中。首先要设置的是CommandType,它用来告
诉ADO引擎准备调用什么样的命令。

4.设置ConnectionString属性
ConnectionString属性告诉ADO如何联接数据源。点击省略号会显示ConnectionString对话
框。我们要自己创建ConnectionString所以选择Use Connection String,然后点击Build
按钮激活Data Link Properties对话框。首先要做的是选择我们要用的数据提供者(Data
Provider)以取得数据,以为要访问的对象是Excel,所以我们选择Microsoft JET OLEDB
4.0 Provider,点击NEXT。下一步是要选择联接的具体对象,通过Browse按钮,选择任意
一个Excel文件或者使用我们提供的样例文件Forecast.xls。在测试ConnectionString之前,
我们还要手动的添加Extended Property,点击OK返回到ConnectionString对话框然后输入
’Extended Properties=Excel 8.0;’别忘了每一个ConnectionString实体都需要用分号
隔离。这是要对ADO声明我们需要Excel支持并使类库关联到Excel 8.0上。点击Build按钮,
然后点击TEST,如果返回正确的结果,这一步的工作就完成了。

5.设置CommandText属性
该属性变成下来表单,允许你选择数据源中定义的表,选择a$。

6.在Form中放置Datasource(Data Access)组件,和DBGrid(Data Controls)。
我们需要将ADODataset连接到网格上显示数据。将DBGrid的DataSource属性设置为
DataSource1,DataSource的ADODataSet属性设置为ADODataSet1。

7.将ADODataSet的Active属性设为True
通过激活ADODataSet,我们可以在设计模式下测试查询的运行状态。来自于EXCEL的数据
将显示在网格中。


 
var
i,row:integer;
begin
if SaveDialog1.Execute then
begin
Screen.Cursor:=crHourGlass;
ExcelApplication1.Connect;
ExcelApplication1.Workbooks.Add(Null,0);
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Sheets[1] as _WorkSheet);
if not adoQuery1.Active then
begin
adoQuery1.Open;
end;
for i:=0 to adoQuery1.Fields.Count-1 do
ExcelWOrkSheet1.Cells.Item[1,i+1]:=adoQuery1.Fields.FieldName;
row:=2;
while not adoQuery1.Eof do
begin
for i:=0 to adoQuery1.Fields.Count-1 do
begin
ExcelWOrkSheet1.Cells.Item[row,i+1]:=adoQuery1.Fields.AsString;
end;
row:=row+1;
adoQuery1.Next;
end;
ExcelWorkBook1.SaveCopyAs(SaveDialog1.FileName);
ExcelWOrkBook1.Close(false);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
Screen.Cursor:=crDefault;
Application.MessageBox('Export successfully!','Information',0);
end;
 
多人接受答案了。
 
后退
顶部