更改的逻辑:
1.把文档中需要更改的图表(或者想要插入图表的位置),设置一下书签(A)
2.使用DocX组件内部函数InsertParagraphBeforeSelf在该书签前面添加一个为空的段落,并设置为书签B,然后把图表插入到这里
3.删除之前的书签(A)图表
具体操作:
首先需要下载这个DocX开源的程序,因为他本身只能在文档最后添加图表,怎么更改参考一下FerventDesert大神的开源Word读写组件DocX 的深入研究和问题总结,改完之后把新的DocX.dll引用到自己的项目里
using (DocX document = DocX.Load(filepath)) { //创建线性表 LineChart c = new LineChart(); //图表最下面的说明 c.AddLegend(ChartLegendPosition.Bottom, false); //获取数据 List<chartData> data = chartData.CreateCompanyList1(); //写入图表数据 Series s1 = new Series("总数1"); s1.Color = Color.Red; s1.Bind(data, "date", "sum"); c.AddSeries(s1); var s2 = new Series("总数2"); s2.Color = Color.Yellow; s2.Bind(data, "date", "trouble"); c.AddSeries(s2); //在书签(A)的图表前面加一个空段落,并设置为书签(B) document.Bookmarks["A"].Paragraph.InsertParagraphBeforeSelf("").AppendBookmark("B"); //在书签(B)的段落中添加该图表 document.InsertChart(c, document.Bookmarks["B"].Paragraph); //删除书签(A)图表的那一段落 document.RemoveParagraph(document.Bookmarks["A"].Paragraph); //文档保存 document.Save(); }