我也是个新手,还在和OpenXML做斗争。我们基本上有一个单词模板,根据用户在我们拥有的网站中选择的记录数量,我们从数据库中提取记录,并使用模板创建一个Word文档。然后,我们将所有这些文档组装成一个主Word文档,供用户使用。我们使用OpenXML和altchunks来实现这一点:
string altChunkId = "AltChunkId" + itemNo.ToString();
MainDocumentPart mainPart = myDoc.MainDocumentPart;
AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart( AlternativeFormatImportPartType.WordprocessingML, altChunkId);
using (FileStream fileStream = File.Open(createdFileName, FileMode.Open))
{
chunk.FeedData(fileStream);
fileStream.Close();
}
AltChunk altChunk = new AltChunk();
AltChunkProperties altChunkProperties = new AltChunkProperties();
MatchSource matchSrc = new MatchSource();
matchSrc.Val = true;
altChunkProperties.Append(matchSrc);
altChunk.AppendChild(altChunkProperties);
altChunk.Id = altChunkId;
mainPart.Document.Body.Append(altChunk);
mainPart.Document.Save();当我在Productivity工具中打开一个模板文档时,我可以看到我希望看到的所有元素:

然而,当我查看“主”文档时,我所能得到的只有MatchSource:

我不明白的是,为什么在生成的主文档中看不到段落标记等。有人能帮我理解我是怎么看这些信息的吗?文档结构有问题吗?
发布于 2015-06-04 13:15:39
这是因为altchunk与主文档合并的方式。altchunk不会更改主文档的openxml标记,但它确实将文件添加为嵌入式资源。把它想象成你是在给电子邮件附加一些东西,而不是将它添加到实际的电子邮件正文文本中。有一些第三方解决方案(如文档生成器 )将通过修改主文档标记来合并文档。然后,您可以看到您期望在生产力工具。
https://stackoverflow.com/questions/30644322
复制相似问题