微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 以编程方式填充.NET中的Word文档(OpenXML)中的内容控件

我有一个非常简单的单词文档与内容控件(所有文本).
我想遍历控件,用字典中的值填充它们.应该超级简单,但有些不对劲:

var myValues = new Dictionary<string,string>(); //And fill it

using (var wordDoc = WordprocessingDocument.Open(outputFile,true))
{
    MainDocumentPart mainPart = wordDoc.MainDocumentPart;

    foreach(SdtElement sdt in mainPart.Document.Descendants<SdtElement>())
    {
      SdtAlias alias = sdt.Descendants<SdtAlias>().FirstOrDefault();

      if (alias != null)
      {
          string sdtTitle = alias.Val.Value;
          sdt.??? = myValues[sdtTitle];
      }
    }
    mainPart.Document.Save();
 }

如何将我的价值写入文件
我需要CustomXmlPart吗?

解决方法

如果你要做那样的事情,你需要在Sdt的SdtContent中写出合适的内容一个段落或一个run或tc等,具体取决于sdt的父元素.

另一种方法是将字典的内容放入CustomXml部分,并在每个引用相关字典元素的内容控件上设置数据绑定.然后Word将在首次打开docx时解析绑定(如果您希望用户使用其他内容打开它,这对您来说不是很好).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐