gpt4 book ai didi

delphi - OLE 自动化 - WORD 表格 (Delphi)

转载 作者:行者123 更新时间:2023-12-02 08:20:09 26 4
gpt4 key购买 nike

我正在尝试在 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 列的表放入第一个表中,则一切正常。

你能帮我吗?

谢谢,洛克

最佳答案

当您在代码中创建这些表时遇到问题,请执行以下操作:

  • 打开单词
  • 录制新宏
  • 录制时,构建所需的表格,然后停止录制。
  • 在 Visual Basic 编辑器中查看宏代码,并尝试将其转换为 OLE 自动化代码(这并不难,几乎是一样的)

关于delphi - OLE 自动化 - WORD 表格 (Delphi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1141599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com