本文主要介绍向word中插入图表的方法。方法共有三种,每一种都有自己的适用范围和利弊。介绍之前,我们准备实验用的文档,做一个如下图所示的word模板,我们要做的的是在这个名叫chart的书签中插入一个图表,下面然后我将逐一进行介绍这三种方法:
首先我们需要先引入Microsoft.Office.Interop.Graph的引用,在添加引入的.Net标签页找到如下图圈出的引用,然后点击确定。
using Word=Microsoft.Office.Interop.Word; using Graph=Microsoft.Office.Interop.Graph;
private void button1_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); Word.Document doc = app.Documents.Add("D:\\Test.docx"); app=doc.Application; doc.ActiveWindow.Visible = true; foreach (Word.Bookmark bk in doc.Bookmarks) { if (bk.Name == "chart") { object oClassType = "MSGraph.Chart.8"; Graph.Axis axis;//x坐标 Word.Range range = bk.Range; Graph.Chart wdchart = (Graph.Chart)range.InlineShapes.AddOLEObject(oClassType).OLEFormat.Object; wdchart.Application.DataSheet.Cells.Clear();//清空数据集数据 //axis.MaximumScale = 1;//设置最大刻度 //填充数据集 int i, j; for (i = 0; i < 3; i++) { wdchart.Application.DataSheet.Cells[i + 1, 1] = "列" + i.ToString(); } for (i = 0; i < 4; i++)//填充数据 { for (j = 0; j < 4; j++) { wdchart.Application.DataSheet.Cells[i + 2, j + 1] = i * j; } } //根据y轴画图 wdchart.Application.PlotBy = Graph.XlRowCol.xlColumns; wdchart.Legend.Delete(); wdchart.Height = 280; wdchart.Width = 600; //更新图标并退出 wdchart.Application.Update(); wdchart.Application.Quit(); wdchart = null; } } //doc.SaveAs("E:\\Test.docx"); //app.Quit(); }
本方法运行结果如下: