我使用 C# OpenXML 生成了一个包含数据的电子表格和一个基于该数据的图表。
我现在想将此图表嵌入到Word文档中,以便在发送这些报告时,可以根据需要编辑图表(不是外部链接)。
我环顾了几个小时,找不到任何一致的文档来实现这一目标。大多数线索似乎都在谈论“EmbeddedPackageParts”。
如果有人有任何有用的文章或可以提供一些清晰度,我们将不胜感激。
干杯, 邓肯。
最佳答案
我终于弄清楚了!
步骤:
生成 xlsx 文件,其中包含我的数据。
将 xlsx 文件保存在本地
在我的Word文档中创建一个新的图表部分并生成图表内容
ChartPart wordChartPart = document.MainDocumentPart.AddNewPart<ChartPart>(); string wordChartId = document.MainDocumentPart.GetIdOfPart(wordChartPart); WordDocumentBuilder.Workflows.SpreadsheetUtils.GenerateBarChartPart(wordChartPart, categories, dataRows);
将电子表格嵌入到 ChartPart 中
EmbeddedPackagePart embeddedObjectPart = wordChartPart.AddEmbeddedPackagePart(@"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); using (FileStream stream = new FileStream(file, FileMode.Open)) { byte[] documentBytes = new byte[stream.Length]; stream.Read(documentBytes, 0, documentBytes.Length); using (BinaryWriter writer = new BinaryWriter(embeddedObjectPart.GetStream())) { writer.Write(documentBytes); writer.Flush(); } }
然后我可以将内联绘图插入引用图表部分的 Word 文档中。
关于C# OpenXML 在 Word 文档中嵌入电子表格图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52826599/