Delphi6中“SERVERS”栏内的Office2000控件看起来很诱人,但怎么用呢? 连个资料都没有,让我等闲人,还得用CreateOleObject('Word.Application')之类的旧方法调用WORD等应用程序。是否有高手可将此类控件细细说来听听…………
解决方案 »
- 用installshield2010做的安装包,如何在安装完后,自动打开网站?
- TADOQuery插入数据行问题
- 在局域网内怎样实现视频聊天功能?
- 怎样让一个MDI窗体响应一个KeyDown事件
- 将查询结果写入到txt文件中,如何按一定的格式保存?
- 我不知道问题的来源。。。
- 如何Delphi中实现在程序执行时动态加载ActiveX控件?
- 第三封贴,>>>>>>>>>地狱情人,请进>>>>>>>>>>>>>>>>>>>>>>
- 如何在程序中用tcp/ip协议监控校园网中所有的交换机和路由器的运行情况,及盼答复!!!给50分
- 谁有fastreport2.44的中文文档?
- 請教進銷存界面問題
- 请问如何将txt文件中的内容读到dbgrid中
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 1) 打开Excel
ExcelApplication1.Connect;2) 显示当前窗口:
ExcelApplication1.Visible[0]:=True;3) 更改 Excel 标题栏:
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';以上两句不可用,出错。
var
Range:excelrange;
i,j,k:integer;
letter:char;
begin
if datasource1.DataSet=nil then showmessage('没有内容可以导入Excel!')
else begin
try
try
excelapplication1.Connect;
except
showmessage('您的机器没有安装Excel!');
abort;
end;
excelapplication1.Visible[0]:=true;
excelapplication1.Caption:='送修内容';
excelapplication1.Workbooks.Add(NUll,0); k:=datasource1.DataSet.FieldCount-4; if datasource1.DataSet.Fields[k].DisplayLabel='COUNT OF 局名' then
k:=4
else k:=0; i:=65+datasource1.DataSet.FieldCount-1-k;
letter:=char(i); range:=excelapplication1.Range['A1',letter+'1']; for i:=0 to datasource1.DataSet.FieldCount-1-k do
begin
range.Value:=datasource1.DataSet.Fields[i].DisplayLabel;
range:=range.Next;
end;
if k=4 then begin
range.Value:='数量';
dec(k);
end;
datasource1.DataSet.First; for i:=1 to datasource1.DataSet.RecordCount do begin
range:=excelapplication1.Range['A'+inttostr(i+1),letter+inttostr(i+1)];
for j:=0 to datasource1.DataSet.FieldCount-1-k do begin
range.Value:=datasource1.DataSet.Fields[j].AsString ;
range:=range.Next;
end;
datasource1.DataSet.Next;
end; except
excelapplication1.Disconnect;
end; end;
end;