【发布时间】:2015-05-14 15:21:32
【问题描述】:
我正在开发一种可以生成 word 文档的解决方案。 word文档是根据定义了内容控件的模板文档生成的。当我的模板中只有一个内容控件时,一切对我来说都很好,但是在使用更多内容控件扩展模板文档后,我遇到了异常。好像我没有找到内容控件。
这是我的方法:
private void CreateReport(File file)
{
var byteArray = file.OpenBinary();
using (var mem = new MemoryStream())
{
mem.Write(byteArray, 0, byteArray.Length);
try
{
using (var wordDoc = WordprocessingDocument.Open(mem, true))
{
var mainPart = wordDoc.MainDocumentPart;
var firstName = mainPart.Document.Body.Descendants<SdtBlock>().Where
(r => r.SdtProperties.GetFirstChild<Tag>().Val == "FirstName").Single();
var t = firstName.Descendants<Text>().Single();
t.Text = _firstName;
var lastName = mainPart.Document.Body.Descendants<SdtBlock>().Where
(r => r.SdtProperties.GetFirstChild<Tag>().Val == "LastName").Single();
var t2= lastName.Descendants<Text>().Single();
t2.Text = _lastName;
mainPart.Document.Save();
SaveFileToSp(mem);
}
}
catch (FileFormatException)
{
}
}
}
这是我得到的例外:
System.Core.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理。内部异常:空
关于如何编写更好的方法来查找控件的任何提示?
【问题讨论】:
标签: ms-office sharepoint-2013 openxml openxml-sdk