加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 21:21:09 所属栏目:百科 来源:网络整理
导读:我有一个非常简单的单词文档与内容控件(所有文本). 我想遍历控件,用字典中的值填充它们.应该超级简单,但有些不对劲: var myValues = new Dictionarystring,string(); //And fill itusing (var wordDoc = WordprocessingDocument.Open(outputFile,true)){ Ma
我有一个非常简单的单词文档与内容控件(所有文本).
我想遍历控件,用字典中的值填充它们.应该超级简单,但有些不对劲:

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时解析绑定(如果您希望用户使用其他内容打开它,这对您来说不是很好).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读