Delphi中OLE控制Office对象中数组对象和元素的表示
{ 欢迎转载,Copy Kingron 2002 }
我们知道,在Delphi控制Word中,经常有Documents等对象或者属性集合,例如:我们要控制第一个文档的第一个表格的第i,j个单元格,有Word的宏如下:
Application.Documents(1).Tables(1).Cells(i,j)....
或者:
Application.Documents('Doc1').Tables(1).Cells(i,j)....
转换成Delphi,我这样写行不通:WordApp.Documents[1].Tables[1].Cells[i,j]......
Documents[1]会提示Item不是一种属性,而写成Documents(1)由告诉你Documents不是一种方法!那么那么在Delphi中如何用OLE控制呢?写法如下:
WordApp:=CreateOleObject('Word.Application');
WordApp.Documents.Item(1).Tables.Item(1).Cells(i,j).......
你也可以利用文档名来做到:
WordApp.Documents.Item('Doc1.Doc').Tables.Item(1).Cell(i,j)....
另外,我们知道VBA中有如下的写法:
WorkSheets("Sheet1").Name="Test"
那么翻译成Delphi应该写成如下:WorkSheets['Sheet1'].Name :='Test';
总而言之,有下面两种写法:
Sheet.Cells.Range('C2') := 'KK';
Sheet.Cells.Range['C2'] := 'KK';
如果一种写法不行,就换另外一种即可,如果还不行,就加.Item。