0
点赞
收藏
分享

微信扫一扫

OPENXML:修改统计图的注意事项

在word文档中,可以通过excel表格,在文档中,建立一个统计图,在程序开发中,可以找到这个统计图,修改一系列的数据,从而达到更新统计图的效果,使用openxml库,可以达到修改数据的效果。

用解压缩工具打开一个word文档的示例,word文档中包含统计图,在结构中发现word文档中存储了一个excel附件,在embeddings的文件夹中,所以修改统计图的时候,一定要把此excel文件也要同步修改。

OPENXML:修改统计图的注意事项_程序开发

OPENXML:修改统计图的注意事项_xml_02

在文档中要先找到统计图的元素,在开发中,使用ChartParts,根据chart的个数,选择要修改的chart元素。

       var _chartParts = _mainDocPart.ChartParts;

找到统计图的附件文件,获取其中的excel文件,之后就是处理excel文件中的数据,修改execel中的行列数据,具体方法参见​​C#使用 OpenXML SDK读取Excel文档​​。

       var _empart = _chartParts.First().EmbeddedPackagePart;

      Stream stream = _empart.GetStream();

    using (SpreadsheetDocument ssDoc =SpreadsheetDocument.Open(stream, true))  

需要注意的是,假如统计图的横轴是以时间为单位,需要用ToOADate(OLE 自动化日期)进行相应的转换,

_dateParm.ToOADate().ToString();

修改完excel后,打开word发现统计图的数据并没有更新,点击一下编辑,统计图倒是更新了,是因为统计图中也有数据的缓存,需要同步进行修改。

从统计图找到NumericValue的值,根据循环,将其中的文本进行修改。

 LineChartSeries bs1 = _chartPart.ChartSpace.Descendants<LineChartSeries>().First();

               IEnumerable<NumericValue> _numCaches = bs1.Descendants<NumericValue>();




举报

相关推荐

matplotlib 统计图

Linux的注意事项

方法的注意事项

UIStackView 的注意事项

fastjson注意事项

Linux 注意事项

0 条评论