我正在处理一个需要将数据输出到Word文档的程序,我在其中放置了标记的纯文本内容控件。基本上,我在编写以下方法后(使用C#)...
public static void SetContentControlText(WordprocessingDocument document, string contentControlTag, string text)
{
// TODO: Implement this method...
}
该方法应该能够使用指定的标记填充所有纯文本内容控件,而不管它们在文档结构中的位置(即它应该能够在文档主体中找到内容控件)以及表格.etc。)。
提前致谢!
答案 0 :(得分:0)
在做了一些挖掘之后,我发现/改编了以下解决方案......
public static int SetContentControlText(
this WordprocessingDocument document,
Dictionary<string, string> values)
{
if (document == null) throw new ArgumentNullException("document");
if (values == null) throw new ArgumentNullException("values");
int count = 0;
foreach (SdtElement sdtElement in document.MainDocumentPart.Document.Descendants<SdtElement>())
{
string tag = sdtElement.SdtProperties.Descendants<Tag>().First().Val;
if ((tag != null) && values.ContainsKey(tag))
{
sdtElement.Descendants<Text>().First().Text = values[tag] ?? string.Empty;
sdtElement.Descendants<Text>().Skip(1).ToList().ForEach(t => t.Remove());
count++;
}
}
return count;
}
该方法接收文档和标记/值对的字典,并返回已设置的内容控件的数量!