簡體   English   中英

在OpenXml的Word文檔中按TagName查找內容控件

[英]Find Content Control by TagName in Word document in OpenXml

我正在嘗試使用OpenXml將文本插入到Word文檔模板的內容控件中。 首先,我通過內容控件的標記名稱搜索內容控件,然后在SdtBlock中添加段落元素,如下所示,

SdtBlock contentBlock = wordDoc.MainDocumentPart.Document.Body.Descendants<SdtBlock>()
   .Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "AssessmentSection")
   .Single();

但是,當我執行此語句時,我得到的是“對象引用未設置為對象的實例”。 錯誤信息。 模板文檔已經具有另一個內容控件,我能夠使用與上面相同的語句(只有標記名不同)找到該控件。 但是在模板中添加“ AssessmentSection”內容控件並運行該程序后,我收到“ AssessmentSection”控件的“ Object Reference ...”錯誤,程序失敗。 我確定新的內容控件標記名稱和標題在其他內容控件中是唯一的。

有人可以幫我為什么會發生這種奇怪的行為以及如何解決它嗎???

您還可以循環文檔ContentControls項目並檢查其標簽,例如:

foreach (Word.ContentControl contentcontrol in wordDoc.ContentControls)
{
   if (contentcontrol.Tag != null)
   {
          ...
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM