同意楼上的,更多关于操作EXCEL的信息请见下面的贴子
我们在对日开发中Delphi控制Excel的经验如下:
Delphi 5 控制Excel
作者:吴晓勇,孙唏瑜
时间:2001年11月20日
(一) 使用动态创建的方法
首先创建 Excel 对象,使用ComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
1) 显示当前窗口:
ExcelApp.Visible := True;
2) 更改 Excel 标题栏:
ExcelApp.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
ExcelApp.WorkBooks.Add;
4) 打开已存在的工作簿:
ExcelApp.WorkBooks.Open( 'C:/Excel/Demo.xls' );
5) 设置第2个工作表为活动工作表:
ExcelApp.WorkSheets[2].Activate;
或
ExcelApp.WorksSheets[ 'Sheet2' ].Activate;
6) 给单元格赋值:
ExcelApp.Cells[1,4].Value := '第一行第四列';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
ExcelApp.WorkSheets[1].Rows.PageBreak := 1;
10) 在第8列之前删除分页符:
ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
11) 指定边框线宽度:
ExcelApp.ActiveSheet.Range[ 'B3
4' ].Borders[2].Weight := 3;
1-左 2-右 3-顶 4-底 5-斜( / ) 6-斜( / )
12) 清除第一行第四列单元格公式:
ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
13) 设置第一行字体属性:
ExcelApp.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;
14) 进行页面设置:
a.页眉:
ExcelApp.ActiveSheet.PageSetup.CenterHeader := '报表演示';
b.页脚:
ExcelApp.ActiveSheet.PageSetup.CenterFooter := '第&P页';
c.页眉到顶端边距2cm:
ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.页脚到底端边距3cm:
ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
e.顶边距2cm:
ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035;
f.底边距2cm:
ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
g.左边距2cm:
ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
h.右边距2cm:
ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;
i.页面水平居中:
ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.页面垂直居中:
ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
k.打印单元格网线:
ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
15) 拷贝操作:
a.拷贝整个工作表:
ExcelApp.ActiveSheet.Used.Range.Copy;
b.拷贝指定区域:
ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy;
c.从A1位置开始粘贴:
ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
d.从文件尾部开始粘贴:
ExcelApp.ActiveSheet.Range.PasteSpecial;
16) 插入一行或一列:
a. ExcelApp.ActiveSheet.Rows[2].Insert;
b. ExcelApp.ActiveSheet.Columns[1].Insert;
17) 删除一行或一列:
a. ExcelApp.ActiveSheet.Rows[2].Delete;
b. ExcelApp.ActiveSheet.Columns[1].Delete;
18) 打印预览工作表:
ExcelApp.ActiveSheet.PrintPreview;
19) 打印输出工作表:
ExcelApp.ActiveSheet.PrintOut;
20) 工作表保存:
if not ExcelApp.ActiveWorkBook.Saved then
ExcelApp.ActiveSheet.PrintPreview;
21) 工作表另存为:
ExcelApp.SaveAs( 'C:/Excel/Demo1.xls' );
22) 放弃存盘:
ExcelApp.ActiveWorkBook.Saved := True;
23) 关闭工作簿:
ExcelApp.WorkBooks.Close;
24) 退出 Excel:
ExcelApp.Quit;
(二) 使用Delphi 控件方法
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
1) 打开Excel
ExcelApplication1.Connect;
2) 显示当前窗口:
ExcelApplication1.Visible[0]:=True;
3) 更改 Excel 标题栏:
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
4) 添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
5) 添加新工作表:
var Temp_Worksheet: _WorkSheet;
begin
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
End;
6) 打开已存在的工作簿:
ExcelApplication1.Workbooks.Open (c:/a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
7) 设置第2个工作表为活动工作表:
ExcelApplication1.WorkSheets[2].Activate; 或
ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
8) 给单元格赋值:
ExcelApplication1.Cells[1,4].Value := '第一行第四列';
9) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5;
10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
11) 在第8行之前插入分页符:
ExcelApplication1.WorkSheets[1].Rows.PageBreak := 1;
12) 在第8列之前删除分页符:
ExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0;
13) 指定边框线宽度:
ExcelApplication1.ActiveSheet.Range[ 'B3
4' ].Borders[2].Weight := 3;
1-左 2-右 3-顶 4-底 5-斜( / ) 6-斜( / )
14) 清除第一行第四列单元格公式:
ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;
15) 设置第一行字体属性:
ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApplication1.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApplication1.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True;
16) 进行页面设置:
a.页眉:
ExcelApplication1.ActiveSheet.PageSetup.CenterHeader := '报表演示';
b.页脚:
ExcelApplication1.ActiveSheet.PageSetup.CenterFooter := '第&P页';
c.页眉到顶端边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.页脚到底端边距3cm:
ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
e.顶边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2/0.035;
f.底边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
g.左边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
h.右边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2/0.035;
i.页面水平居中:
ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.页面垂直居中:
ExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
k.打印单元格网线:
ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True;
17) 拷贝操作:
a.拷贝整个工作表:
ExcelApplication1.ActiveSheet.Used.Range.Copy;
b.拷贝指定区域:
ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;
c.从A1位置开始粘贴:
ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
d.从文件尾部开始粘贴:
ExcelApplication1.ActiveSheet.Range.PasteSpecial;
18) 插入一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
b. ExcelApplication1.ActiveSheet.Columns[1].Insert;
19) 删除一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
20) 打印预览工作表:
ExcelApplication1.ActiveSheet.PrintPreview;
21) 打印输出工作表:
ExcelApplication1.ActiveSheet.PrintOut;
22) 工作表保存:
if not ExcelApplication1.ActiveWorkBook.Saved then
ExcelApplication1.ActiveSheet.PrintPreview;
23) 工作表另存为:
ExcelApplication1.SaveAs( 'C:/Excel/Demo1.xls' );
24) 放弃存盘:
ExcelApplication1.ActiveWorkBook.Saved := True;
25) 关闭工作簿:
ExcelApplication1.WorkBooks.Close;
26) 退出 Excel:
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
(三) 使用Delphi 控制Excle二维图
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet
var asheet1,achart, range:variant;
1)选择当第一个工作薄第一个工作表
asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];
2)增加一个二维图
achart:=asheet1.chartobjects.add(100,100,200,200);
3)选择二维图的形态
achart.chart.charttype:=4;
4)给二维图赋值
series:=achart.chart.seriescollection;
range:=sheet1!r2c3:r3c9;
series.add(range,true);
5)加上二维图的标题
achart.Chart.HasTitle:=True;
achart.Chart.ChartTitle.Characters.Text:=’ Excle二维图’
6)改变二维图的标题字体大小
achart.Chart.ChartTitle.Font.size:=6;
7)给二维图加下标说明
achart.Chart.Axes(xlCategory, xlPrimary).HasTitle := True;
achart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text := '下标说明';
8)给二维图加左标说明
achart.Chart.Axes(xlValue, xlPrimary).HasTitle := True;
achart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text := '左标说明';
9)给二维图加右标说明
achart.Chart.Axes(xlValue, xlSecondary).HasTitle := True;
achart.Chart.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text := '右标说明';
10)改变二维图的显示区大小
achart.Chart.PlotArea.Left := 5;
achart.Chart.PlotArea.Width := 223;
achart.Chart.PlotArea.Height := 108;
11)给二维图坐标轴加上说明
achart.chart.seriescollection[1].NAME:='坐标轴说明';
E-Mail: sunxiyu@gd-soft.net
wuxy@gd-soft.net
声明:转载本文内容请与作者联系。
来自:createnew, 时间:2001-12-3 9:21:00, ID:759729
好!正是我要的。还有吗?
来自:sandy suen, 时间:2001-12-4 8:41:00, ID:761828
我们还有:
Delphi5 控制 Fomula One
Delphi5 控制 Access
Delphi5 控制 Word
会在近期陆陆续续贴上来,最近我们公司一直在研究这方面的技术,日本人比较喜欢。
来自:lop, 时间:2001-12-4 8:46:00, ID:761843
谢谢!你给出的正是我的所需。
来自:RedVita, 时间:2001-12-4 9:20:00, ID:761948
So good!!
来自:yitanhg, 时间:2001-12-4 9:26:00, ID:761969
还算全面,GOOD
来自:zylsoft, 时间:2001-12-4 9:57:00, ID:762063
sandy suen:
能把你的:Delphi5 控制 Fomula One
先发过来吗?
zylsoft@163.com
来自:yht, 时间:2001-12-4 10:54:00, ID:762288
太好了,但是怎么通过OLEContainer来控制excel呢,我用的是createobject,现已实现如何在olecontainer中显示一个excel,但如何才能对其进行其他操作?
来自:yht, 时间:2001-12-4 15:42:00, ID:763164
解决了大部分,还有一点没有解决
来自:sandy suen, 时间:2001-12-4 17:40:00, ID:763517
Re zylsoft:
我们的Delphi5 控制 Fomula One6资料还不完善,我会在完善中把初稿发给你。
我们的资料都有相应的源代码,保证正确性,因此写起来比较慢。
来自:zylsoft, 时间:2001-12-5 7:44:00, ID:764275
谢谢:sandy suen
我等你的好消息。
愿你们早日完成。
来自:hunyuan, 时间:2001-12-5 7:51:00, ID:764277
正是需要的
来自:jiem, 时间:2001-12-5 11:29:00, ID:764865
to sandy suen
有控制word的吗?
可以发我一份吗?
thanks
来自:sandy suen, 时间:2001-12-5 11:43:00, ID:764922
"Delphi5 控制 Word"的资料也是没有编完,而且我感觉Word的控制是最难的。
来自:netup, 时间:2001-12-22 12:37:00, ID:804169
非常感谢sandy.
但我使用OLE的方法是一切OK
但用DELPHI的控件, 却好象有一点问题,因为我是不太懂.办公自动化这一块, 如
不知是何故, 但就我使用, 我觉得, 控件方法的使用, 不如OLE,有些用法不同微软
的VBA一样.但OLE方式就一样了.
(二) 使用Delphi 控件方法
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
1) 打开Excel
ExcelApplication1.Connect;
2) 显示当前窗口:
ExcelApplication1.Visible[0]:=True; //OK
3) 更改 Excel 标题栏:
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel'; //OK
4) 添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0)); //OK
5) 添加新工作表://OK
var Temp_Worksheet: _WorkSheet;
begin
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
End;
6) 打开已存在的工作簿://OK
ExcelApplication1.Workbooks.Open (c:/a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
7) 设置第2个工作表为活动工作表://OK
ExcelApplication1.WorkSheets[2].Activate; 或
ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
8) 给单元格赋值://?????????
ExcelApplication1.Cells[1,4].Value := '第一行第四列';
改为:ExcelApplication1.Cells.ITEM[1,4].Value := '第一行第四列';
9) 设置指定列的宽度(单位:字符个数),以第一列为例://?????? 出错
ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5;
ExcelApplication1.ActiveSheet返回的类型为: IDISPATCH, 所以不能编译,
改为: _WORKSHEET(ExcelApplication1.ActiveSheet).Columns.ITEM['A1','A1'].ColumnsWidth := 5;//
编译通过, 但出错.
_WORKSHEET(ExcelApplication1.ActiveSheet).Columns[1] .ColumnsWidth := 5; //不能编译
后面的我就没测了, 不知大家有没有试, 我对此不是很了解. 望指正.
另:
vb 含意 DEPHI
Range ("A1") 儲存格 A1 RANGE['A1', 'A1']
Range("A1:B5") 從儲存格 A1 到儲存格 B5 的範圍 RANGE['A1', 'B5']
Range("C5
9,G9:H16") 多塊的指定範圍 RANGE['C5
9','G9:H16']
Range("A:A") A 欄 不知如何表示
Range("1:1") 第一列 不知如何表示
Range("A:C") 從 A 欄到 C 欄的範圍 不知如何表示
Range("1:5") 從第一列到第五列的範圍 不知如何表示
Range("1:1,3:3,8:8") 第一、三和第八列 不知如何表示
Range("A:A,C:C,F:F") A 欄、 C 欄和 F 欄 不知如何表示
来自:netup, 时间:2001-12-26 17:58:00, ID:814565
为何大家不讨论一下我上面的问题, 是不是太差?
来自:SamHunt, 时间:2001-12-26 18:17:00, ID:814617
太好了,这就是我近日所要的关于Excel?
how can i get the infomation about Excel object ?
thank you !!
来自:sandy suen, 时间:2001-12-27 13:35:00, ID:816362
to netup:
为你准备了源代码,就是不知道怎么贴上来?
to SamHunt:
“how can i get the infomation about Excel object ?”
不明白??
来自:SamHunt, 时间:2001-12-27 16:29:00, ID:816832
to sandy suen
如何可以获得关于控制Excel的说明。如果是Ado,它有一个chm,里面都有关于Ado的所有对
象和方法。我说的就是这个象Chm的说明。
来自:netup, 时间:2001-12-28 11:39:00, ID:818525
to sandy suen:
非常感谢你的帮助, 真想给你加分, 但我又不多, 如你去数据库方面找一下我的问题,
回答一下, 我就可以给你分了. 因为你确实帮了大家!
你可以将代码mail to : netup@163.net or netup@163.com
你也可也在这里贴出来, 再次感谢.
来自:夜鹰, 时间:2001-12-28 12:54:00, ID:818687
To sandy suen:
怎样可以获得一个表里有多少SHEET,最大行数,最大列数
我最近在搞EXCEL数据的到出,要程序自动进行,正式我要的
来自:fancy105, 时间:2001-12-28 13:14:00, ID:818757
能不能把Excel中的數據讀到自己編寫的程序中處理﹖
来自:nineyimo, 时间:2002-1-4 10:43:00, ID:833565
在DELPHI6
可以用控件的方式实现访问EXCEL,
可是用COMOBJ动态的方式不能实现。
请高手指教~~~~~~~
来自:Celestial dog, 时间:2002-1-4 10:48:00, ID:833591
我要控制word
来自:lostlastlove, 时间:2002-1-4 12:22:00, ID:833894
太好了!谢谢
来自:王新手, 时间:2002-1-4 15:07:00, ID:834378
如果合并单元格怎么办呢?D6的ExcelApplication中Range.Merge(Acrose:OleVariant)
怎么用啊?
来自:linsb, 时间:2002-1-4 16:06:00, ID:834540
sandy suen:
你们的工作太有意义了,非常感谢! 希望尽快完成后续的工作,
如有可能请将你们的有关成果、经验、心得、相关代码等发给我一份,万分感谢!!
linsb
Email:linsb3031@mail.china.com
来自:大海无量, 时间:2002-1-7 8:28:00, ID:839261
多谢,能否给我发一分源码?http://www.QC_2001@hotmail.com
来自:wbcp2000, 时间:2002-1-7 8:42:00, ID:839286
我想没有必要记这么多吧,打开excel,录制宏,一切就 OK啦
来自:pmis, 时间:2002-1-7 20:52:00, ID:841306
谢谢兄弟!!
来自:jfchen, 时间:2002-1-7 21:02:00, ID:841328
er
来自:曾阿牛, 时间:2002-1-7 21:13:00, ID:841359
好,加入收藏
多谢
来自:leozmy, 时间:2002-1-9 13:06:00, ID:844859
to netup:
我试了一下,和你一样。
ole比较好用。
有没有人知道关于这些组件的官方说明?
来自:sandy suen, 时间:2002-1-10 12:55:00, ID:847408
我上网很多年了,但一直不会用聊天室和论坛,1月12号我和同事会试一试把源代码贴在这里,我们不能天天来看贴子,也不能天天收邮件。
我也会把一些半成品的文章贴上来,变成成品之后再另外贴一个。
因为是半成品,请不要笑话。
来自:ydl_2000, 时间:2002-1-10 15:06:00, ID:847885
very good!!!
来自:black猫, 时间:2002-1-10 15:44:00, ID:847999
天啊,怎么控制单元格格式呀,用sandy suen的方法,我把一个很长的数据,例如身份证号码
输进去,excel把它变成了科学计数法,我倒~~~~~~~~~~~
来自:yyanghhong, 时间:2002-1-10 20:52:00, ID:848850
gvv_Excel.cells[lvs_temprow,lvs_tempcol].NumberFormat := '@';
来自:black猫, 时间:2002-1-11 10:20:00, ID:849751
有设置其他格式的代码吗?
来自:sandy suen, 时间:2002-1-11 10:29:00, ID:849794
类似于“black猫”提出的问题都可以用录制宏--〉编辑宏的办法实现。
vba代码不能直接转换为delphi代码,要参考你使用的DDE或OLE的方式,不过当你调通了第一句,
其它的就好办了。
vba代码的语句先后顺序一般不能改变。
我个人体会:
Delphi控制Excel-->Delphi控制Fumorla One-->Delphi控制VSFlex Grid-->
Delphi控制XML
是我们走过的路,Delphi控制Word现在我们也用了一些,但一直没有走出来。
Delphi控制Access是日本人比较熟练的路。
我们很快可能全面转向XML,想听听大家的看法。
来自:edymill, 时间:2002-1-11 10:48:00, ID:849851
對於XML以後很有可能成為標準。
隻是我現在還沒有學到!
如果有人先學到了,能寫出一點心得貼上來!我會萬分感謝!
向sandy suen等人學習!
来自:Zoushikun, 时间:2002-1-11 10:49:00, ID:849852
热情期待其他控制大全!
来自:ZergWang, 时间:2002-1-24 15:03:00, ID:882274
我也来谢谢你!
来自:daifan, 时间:2002-1-28 9:48:00, ID:889226
我用Delphi控制Excel,好像总是在释放的时候出现问题。
有没有比较好的方法?
来自:bergen, 时间:2002-1-29, ID:891271
thank you very much, I love you sandy suen!
来自:linyi_cn, 时间:2002-1-31 17:52:00, ID:899007
你们的方法很老套了,谁都会。
其实可以把olecontainer和delphi控件结合处理,从界面上看就是自己的程序。
这样可以用oleobject获得excelapplication对其操作,从而利用ole与excel的良好兼容性。
另外可以把delphi自带控件与olecontainer中的excel连接起来,从而获得excel的事件,
如openworkbook,sheetchange等,这样可以得到excel中输入的数据。
如果不想用olecontainer,也可以激活单独的excel,并且在其中添加自己的工具栏和快
捷按钮,以激发自己编写的过程(这种技术早在1999年就已经被通用财务软件采用了)。
你们现在贴的这些就连那些电脑杂志上也不知道发表多少次了!
来自:zylsoft, 时间:2002-2-1 8:40:00, ID:899757
linyi_cn:能多说一些吗?
来自:Lion_sj, 时间:2002-2-7 9:54:00, ID:912684
linyi_cn:我正在帮一个朋友做个东西
是对excel中的数据进行统计,并做成报表打印输出,请问在delphi中如何做,能有源代码就
更好了
来自:HunterTeam, 时间:2002-3-11 10:58:00, ID:975213
请问一下如何打开已存在的excel或Word文档?Ole还是Server控件好?
来自:润五月, 时间:2002-3-28 16:52:00, ID:1008464
ExcelApplication1.ActiveSheet.Rows[2].Insert;为什么总是报错?
class does not have a default property