我刚开始使用Visual Studio 2010(C#)中的OpenXML SDK 2.0。在使用COM自动化之前,我有自动化的办公室程序,这很痛苦。使用OpenXml SDK 2.0在word文档中插入表格
我有一个由我们的图形设计师制作的模板,它将为我的报告提供基础。为了自动化简单的事情(纯文本项目),我已经将内容控件添加到模板并将自定义XML部分绑定到文档。内容控件如下:
- DAYCOUNT
- AlternateJobTitle
- 日期
- SignatureName
制作模板的副本之后,我然后编辑内容控制和保存文件用以下代码:
//stand up object that reads the Word doc package
using (WordprocessingDocument doc = WordprocessingDocument.Open(docOutputPath, true))
{
//create XML string matching custom XML part
string newXml = "<root>" +
"<DayCount>42</DayCount>" +
"<AlternateJobTitle>Supervisor</AlternateJobTitle>" +
"<Date>9/24/2012</Date>" +
"<SignatureName>John Doe</SignatureName>" +
"</root>";
MainDocumentPart main = doc.MainDocumentPart;
main.DeleteParts<CustomXmlPart>(main.CustomXmlParts);
//add and write new XML part
CustomXmlPart customXml = main.AddCustomXmlPart(CustomXmlPartType.CustomXml);
using (StreamWriter ts = new StreamWriter(customXml.GetStream()))
{
ts.Write(newXml);
}
}
这一切运作良好。但是,我的文档不是纯粹由标准文本和纯文本更新组成的。报告的真正内容在许多表格中,也需要添加到每个报告中。我一直在疯狂地寻找关于这是如何完成的很好的描述,但真的没有发现任何东西。有没有一种方法来描述使用用于明文控件的相同内容控制逻辑来放置表的位置?我发现使用OpenXML创建表的任何代码示例都假定您想将其附加到主文档部分的末尾。我想指定表格需要在模板中的位置,生成表格并将它们放置在模板的指定区域中。这可能吗?
任何帮助,非常感谢。