相关疑难解决方法(0)

如何使用OpenXml SDK 2.0更改Word 2007中的内容控件的内容?

即将生气这个问题.我确信这很简单,我只是错过了它,但我不能为我的生活找到如何使用C#中的OpenXml SDK v2.0更改Word 2007中的内容控件的内容.

我创建了一个带有纯文本内容控件的Word文档.此控件的标记是"FirstName".在代码中,我想打开Word文档,找到此内容控件,并更改内容而不会丢失格式.

我最终开始工作的解决方案包括找到内容控件,在其后面插入一个run,然后删除内容控件:

using (WordprocessingDocument wordProcessingDocument = WordprocessingDocument.Open(filePath, true)) {
MainDocumentPart mainDocumentPart = wordProcessingDocument.MainDocumentPart;
SdtRun sdtRun = mainDocumentPart.Document.Descendants<SdtRun>()
 .Where(run => run.SdtProperties.GetFirstChild<Tag>().Val == "FirstName").Single();

if (sdtRun != null) {
 sdtRun.Parent.InsertAfter(new Run(new Text("John")), sdtRun);
 sdtRun.Remove();
}
Run Code Online (Sandbox Code Playgroud)

这确实改变了文本,但我丢失了所有格式.有谁知道我怎么做到这一点?

word-2007 openxml

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

openxml ×1

word-2007 ×1