【问题标题】:Insert tables into word via vb.net通过 vb.net 将表格插入 word
【发布时间】:2016-01-08 17:49:47
【问题描述】:

我正在为 word 制作插件。必须可以插入表格。应可以指定尺寸和位置。当我插入第一个表时它工作正常,但如果我插入另一个表,则第一个表被删除并插入新表。我对 vb.net 还是很陌生,所以代码可能不是最好的。

    With Globals.WordAddIn.ActiveDocument.Tables.Add(Globals.WordAddIn.ActiveDocument.Range, 1, 1)
        .TopPadding = 0
        .BottomPadding = 0
        .LeftPadding = 0
        .RightPadding = 0
        .Rows.WrapAroundText = True
        .Rows.RelativeHorizontalPosition = Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage
        .Rows.RelativeVerticalPosition = Word.WdRelativeVerticalPosition.wdRelativeVerticalPositionPage
        .Rows.HorizontalPosition = dobHorizontal
        .Rows.VerticalPosition = dobVertical
        .Rows.Height = dobHeight
        .Columns.Width = dobWidth
    End With

【问题讨论】:

    标签: vb.net ms-word vsto


    【解决方案1】:

    假设您使用上面的代码添加两个表(可能在循环中),我认为问题在于您使用第二个表覆盖了第一个表,因为您使用了相同的范围。

    Tables.Add 的文档说:

    您希望表格出现的范围。该表取代了 范围,如果范围没有折叠。

    如果您将代码的第一行更改为:

    With Globals.WordAddIn.ActiveDocument.Tables.Add(Globals.WordAddIn.ActiveDocument.Range, 1, 1)
    

    类似

    dim range = Globals.WordAddIn.ActiveDocument.Range;
    With Globals.WordAddIn.ActiveDocument.Tables.Add(range, 1, 1)
    

    然后在您添加第一个表之后:

    range.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
    

    它应该让你添加两个表。

    但是,如果您将两个表格一个接一个地添加,我认为 Word 会将它们组合成一个表格,因此您需要在其间添加一些空格,例如使用以下内容:

    range.InsertParagraphAfter();
    range.Collapse(Word.WdCollapseDirection.wdCollapseEnd); ' need to collapse again to avoid overwriting
    

    我认为它可能会起作用。

    【讨论】:

      猜你喜欢
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      相关资源
      最近更新 更多