Delphi控制Excel的方法

转自:http://wenda.tianya.cn/question/24c090e4f4743b4f

1 创建Excel文件

要在Delphi中控制Excel,就必须用到OLE自动化。现在一般采用OLE2来创建OLE对象,当激活一个OLE对象时,服务器程序仅在容器程序内部激活,这就是所谓的“就地激活”(in-place activation)。
创建Excel文件时,先创建一个OLE对象,然后在对象中建立工作表worksheet,如函数createExcel所示:

function createExcel:variant; 
var 
v:variant; 
sheet:variant; 
begin 
v:=createoleobject('Excel.Application');//创建OLE对象 
v.visible:=true; 
v.workbooks.add(-4167); //添加工作表 
v.workbooks[1].sheets[1].name:='test'; 
sheet:=v.workbooks[1].sheets['test']; 
return v; 
end; 

2 数据表格控制

Excel表格的控制,主要包括数据的导入、修改;单元格的合并、边框的控制;表格的复制、粘贴等。当报表格式一定的情况下,表格的复制、粘贴显得尤为重要,这样,可以先制作一个文件模板,然后按照实际需要输出多页报表即可。

(1)数据的导入(importData)

procedure importData; 
var 
I,j:integer; 
v:variant; 
begin 
v:=createExcel; //创建Excel文件test 
for I:=0 to maxcolumn do 
begin 
for j:=0 to maxrow do 
v.workbooks[1].sheets[1].cells[I,j]:=I*j; //导入数据 
end; 
end; 

(2)单元格的合并、边框的控制(lineStylecontrol)

单元格的合并,是在选定合并范围的情况下进行的。边框控制可以操作边框线条的是否显示。其他方式的控制,可以仿照下面过程进行。

procedure lineStylecontrol; 
var 
v,sheet,range:variant; 
begin 
v:=createExecl; 
sheet:= v.workbooks[1].sheets[1]; 
range:=sheet.range[sheet.cells[1,1],sheet.cells[39,30]];//选定表格 
range.select; 
range.merge; //合并单元格 
range.borders.linestyle:=xlcontinuous; //置边框线可见 
range.font.size:=9; //改变表格内文本字体大小 
end; 

(3)表格的复制与粘贴(copyandPaste)

procedure copyandPaste; 
var 
v,sheet,range:variant; 
begin 
v:=createExecl; 
sheet:= v.workbooks[1].sheets[1]; 
range:=sheet.range[sheet.cells[1,1],sheet.cells[39,30]]; 
range.select; //选定要复制的表格 
range.copy; //复制选定的表格 
sheet.range[sheet.cells[40,1],sheet.cells[40,1]].select; //选择要粘贴的位置 
sheet.paste; //粘贴表格 
end; 

3 文件的保存

文件保存是在创建文件的基础上进行的,过程saveFile说明了文件保存过程中应该注意的问题:

procedure saveFile; 
var 
sheet,v:variant; 
begin 
v:=createExcel; 
if savedialog.execute then 
begin 
v.workbooks[1].saveas(savedialog.FileName);//保存文件 
v.workbooks[1].close; //关闭工作表 
v.quit; //关闭Excel 
v := unassigned; 
end; 
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值