【问题标题】:Add a table to a content control将表格添加到内容控件
【发布时间】:2022-02-17 08:11:29
【问题描述】:

This tutorial 建议在内容控件中嵌套表格,但每次我尝试这样做时都会收到一条错误消息,提示“Word 无法关闭设计模式,因为内容控件中的占位符文本包含无效项目”。我已经尝试过富文本和纯文本内容控件。 Office 版本是 2012。

如何向内容控件添加表格?

【问题讨论】:

  • 我已经用 MS Word 2007 测试了本教程,它可以工作。确保将富文本框内容控件添加到 Word 文档并对其进行标记。此外,富文本框内容控件必须包含一个包含一行和三个单元格的表格。
  • 在将表格/控件放入控件时关闭“设计模式”。

标签: .net ms-word openxml


【解决方案1】:

如果关闭设计模式,它可以工作。不过我还是不满意,因为 Word 会自动在每个表格后添加一个空段落。

【讨论】:

  • 删除段落很简单但不直观。您可以选择段落,然后从控件底部选择,然后在 Word 中按删除(这非常容易);或者您可以在 Visual Studio 中打开文档包,找到 document.xml 文件,然后删除作为段落的文本行。问题是在需要时将段落取回!
【解决方案2】:

根据我自己的实验和阅读 VBA 文档。对于内容控件的开始和结束可以出现在文档中的位置,只有一组有限的受支持用例。使用相关常量control.Level,以便您将它们区分开来。

  • wdContentControlLevelInline - 在单个段落内内联。

  • wdContentControlLevelParagraph - 一些完整的段落。

  • wdContentControlLevelRow - 链接到表格的一行。

  • wdContentControlLevelCell - 单个表格单元格。

似乎有第 5 个选项。如果您先创建一个表,然后选择它并添加控件。没有插入额外的空行。但是,如果您删除表,控件也将被删除。如果你使用VBA查看表格和控件的Range.Start & Range.End,你会看到表格封装了Paragraph控件。

如果不创建额外的段落,似乎无法将 Excel 表格粘贴到现有的内容控件中。

如果您确实将表格插入现有控件,它将首先转换为LevelParagraph。带有前导和尾随空行。虽然您可以删除开头的段落,但 word 不允许您删除结尾的段落。

但是您可以选择它并将字体效果更改为“隐藏”。至少它不会被打印出来。

或者您必须同时删除内容控件和表格,然后重新创建它们。

【讨论】:

    猜你喜欢
    • 2013-07-14
    • 2014-02-18
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多