我想在WORD表格里面制作表格。当然在最后的节目中它将是dinamical,这不是在这个样本。OLE自动化 - WORD表格(德尔福)
这是我的示例代码。
var
aTable, bTable, cTable : OLEVariant;
begin
m_WordApplication := CreateOleObject('Word.Application') ;
m_WordDocument := m_WordApplication.Documents.Add;
aTable := m_WordDocument.Tables.Add(m_WordApplication.Selection.Range, 2, 1);
aTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
aTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
aTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
aTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;
bTable := m_WordDocument.Tables.Add(aTable.Cell(1, 1).Range, 2, 1);
bTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
bTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
bTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
bTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;
cTable := m_WordDocument.Tables.Add(aTable.Cell(2, 1).Range, 3, 1);
cTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
cTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
cTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
cTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;
m_WordDocument.SaveAs('C:/test.doc', False) ;
m_WordApplication.Quit(False);
首先我把上的光标的位置的新表(2行,第1列),然后我试图把第二表在细胞(1,1)和第三个中的细胞(2,1)第一张桌子。第二个表也有2行和1列,但第三个表有3行和1列。但不是我想要什么我得到第二个和第三个桌子只有一行,不管我是否在他的单元格中输入了某些东西,我总是只看到放在该表格中的最后一个字符串。
甚至更多,如果我把1行和2列表放在第一个表内,那么一切都是正常的。
你能帮助我吗?
感谢,韩城
也许你可以编辑您的文章,使之更可读。 (最重要的是:正确拼写) – 2009-07-17 06:10:09
此外,我强烈建议(使用OleVariants =)使用早期绑定(=使用界面从导入Word_TLB),其中在这样的后期绑定具有许多优点 – 2009-07-17 06:26:06