我们接着上一文的内容介绍在word中插入图标的方法。

方法二:从Excel中拷贝图表

这种方法相信你通过这个标题就了解了。我们的思路就是在Excel中生成这个图表,然后在拷贝的word中。

2.1 引入Excel类库

首先我们需要在项目中引入Excel相关的引用,如下图所示在“添加引用”对话框中选中选中Excel的对象库,然后点击确定。

添加完成之后,我们还需要做的工作就是实用using关键字把Microsoft.Office.Interop.Excel命名空间其一个别名Excel:

using Excel = Microsoft.Office.Interop.Excel;

2.2 在Excel中生成图表

接下来,我们启动Excel进程,然后在它的第一个sheet中添加一个2行4列的表格,并添加数据:

Excel.Application eApp = new Excel.Application();//创建Excel进程
eApp.Visible = true;//设置Excel可见
Excel.Workbook book=eApp.Workbooks.Add();//增加一个workboo
Excel.Worksheet sheet = eApp.Worksheets[1];//获取第一个Worksheet
Excel.Range range = sheet.get_Range("A1", "D2");//获取A1到D2范围内的Range
//向表格中插入数据
range.Cells[1][1] = "姓名";
range.Cells[1][2] = "成绩";
range.Cells[2][1] = "张三";
range.Cells[2][2] = "89";
range.Cells[3][1] = "李四";
range.Cells[3][2] = "100";
range.Cells[4][1] = "王五";
range.Cells[4][2] = "95";

如果顺利的话,我们应该得到下面所示的Excel数据:

然后,获取B1到D2的Range,并插入图表。

//插入图表À
Excel.Chart xlChart = book.Charts.Add();
//设置图表源
xlChart.SetSourceData(range);
最后,拷贝表格和图表到word中。
//拷贝表格
Word.Range wdRange = bk.Range;
range.Copy();
wdRange.Paste();
//拷贝图表数据到
wdRange.SetRange(wdRange.End, wdRange.End + 1);
xlChart.ChartArea.Copy();
wdRange.Paste();

如果不出意外,我们成功插入了表格和图表:

方法二基本都会适用于所有版本的office,接下来我们介绍的方法三只适用于office2010以上的版本。

方法三:利用InlineShapes的AddChart方法插入图表

我们这里只是对方法三的一个简单介绍,因为笔者的office版本为2007版的,不想再重新安装2010版本以上的进行试验。从office2010之后InlineShape增加了一个Chart的属性,就是我们添加的图表,我们可以可以利用InlineShapes的AddChart()增加一个图表,该函数的返回值就是这个chart所在的InlineShape,然后通过InlineShape的Chart属性获取这个chart,这样我们就能够对chart进行设置数据或者格式的操作了,详细的方法见下面代码的注释。

Word.Selection sel = app.Selection;
Word.InlineShape shape = sel.InlineShapes.AddChart();//插入图表
Word.Chart wdChart = shape.Chart;//获取图表
Word.ChartData chartData = wdChart.ChartData;//获取图表的数据
Excel.Workbook dataWorkbook = (Excel.Workbook)chartData.Workbook;//获取数据对应的workbook
dataWorkbook.Application.Visible = false;
Excel.Worksheet dataSheet = (Excel.Worksheet)dataWorkbook.Worksheets[1]; //获取图表对应|的sheet

Github位置:
https://github.com/HymanLiuTS/OfficeTestByC-
克隆本项目:
git clone git@github.com:HymanLiuTS/OfficeTestByC-.git
获取本文源代码:
git checkout L08_2

C#中操作Word(9)—— 向Word中插入图表的三种方法(二)相关推荐

  1. C#中操作Word(8)—— 向Word中插入图表的三种方法(一)

    一. 前言 本文主要介绍向word中插入图表的方法.方法共有三种,每一种都有自己的适用范围和利弊.介绍之前,我们准备实验用的文档,做一个如下图所示的word模板,我们要做的的是在这个名叫chart的书 ...

  2. 【在PowerPoint中插入视频的三种方法】

    为了能更好地帮助大家合理地在PowerPoint课件中插入和播放视频文件, 在PowerPoint中插入视频的三种方法 ,本文特向大家介绍PowerPoint中插入和处理视频的三种方法. 直接播放视频 ...

  3. ​Word怎么转换成PDF格式?这三种方法教你如何转换

    怎么把Word文档转换成PDF文件格式呢?相信小伙伴们在办公过程中会习惯使用Word文档来编辑文件,编辑好后如果需要发送文件的话会将文档转换成PDF格式来发送,原因就是PDF格式独有的兼容性和稳定性能 ...

  4. Word文档怎么横向排版?这三种方法简单高效专业

    我们在利用Word文档处理日常工作时,为了文档的美观,我们会经常对Word文档进行各种形式的排版,比如对Word文档进行横向排版.如果有小伙伴不知道该如何进行横向排版,那么今天小编将要向大家分享三个横 ...

  5. node.js中mysql批量插入更新的三种方法

    [背景]在项目中遇到一个批量插入数据的需求,由于之前写过的sql语句都是插入一个对象一条数据,于是去网上搜关键词 "sql批量插入"."mysql批量插入"等, ...

  6. android sdk与adt版本,eclipse中sdk与adt版本不兼容该怎么解决? 三种方法帮你搞定

    安卓开发过程中经常遇到sdk版本adt版本不相符,sdk版本过高的问题,这篇经验帮助你解决这个问题,如果是adt版本过高,请升级sdk,如果出现的错误如下图所示表示sdk版本过高,下面介绍三种方法 软 ...

  7. HTML中怎样把文字分两栏显示,word设置一页分两栏的三种方法

    我们在阅读报纸的时候,经常看到分栏的现象,这就是通过Word当中的"分栏"功能进行设置的,那么下面就由学习啦小编给大家分享下word设置一页分两栏的技巧,希望能帮助到您. word ...

  8. html中页面整体居中,css实现网页内容整体居中的三种方法总结

    下面我们来看一款利用css实现div中内容居中的方法,下面整理了三种css实现网页内容整体居中方法,希望对各位朋友会有所帮助. 例 代码如下 复制代码 -//W3C//DTD XHTML 1.0 Tr ...

  9. 查找字符串中出现字符最多次数和出现的字符(三种方法)

    第一种 var str = "abcccwwwasdasfqwweqewqeqwnn"var arr = str.split("")var Arr = arr. ...

最新文章

  1. Microbiome:宏基因组分箱流程MetaWRAP简介
  2. 2017,公司必须换掉的六种人,别心软!
  3. Linux 忘记root密码(记录)
  4. GitHub上的编程语言:JavaScript领衔Java次之
  5. Java的知识点19——异常机制Exception
  6. CVPR2020最全整理:分方向论文下载,Github源码、论文解读等[计算机视觉][目标检测]
  7. 有理有据!为什么String选择数字31作为hashCode方法乘子?
  8. 流传在程序员中的传说,你知道几个?
  9. html语言 大全,HTML语言大全
  10. 我开着超市,不好好做自己的生意,每天却为社区团购平台打工
  11. FLOPs衡量模型复杂度
  12. 新库上线 | CnOpenData境外投资企业(机构)名录数据
  13. 1实训(学生信息管理系统)
  14. matlab中switch函数用法
  15. linux pv 信号量,pv操作与信号量(示例代码)
  16. MySQL8.0中消失又回来的磁盘临时表
  17. 微信地图wgs84坐标,gcj02坐标,bd09坐标转换
  18. 跟小老虎博客并驾齐驱的博客虎兄虎弟dbzhang800
  19. 东大22春电子政务X《电子政务》在线平时作业3参考非答案
  20. GPS失锁和丢包区别

热门文章

  1. 基于Matlab使用地面雷达探测和跟踪LEO卫星星座仿真(附源码)
  2. js简单实现百度地图雷达探测效果
  3. 苹果组建新团队自研无线芯片,欲摆脱第三方束缚!
  4. 下载kaggle比赛的数据集
  5. Noisy Channel Language Model Prompting for Few-Shot Text Classification
  6. Android 实现仿微信朋友圈九宫格图片+NineGridView+ImageWatcher(图片查看:1.预览,2.拖动,3.放大,4.左右滑动,5.长按保存到手机)的功能
  7. 特征工程的准备:特征理解
  8. 打开虚拟机时报硬盘UUID 已经存在的解决办法
  9. 板材品牌排名之橱柜用生态板
  10. php如何连接数据库 甲骨文,Windows PHP/phpStudy 连接 甲骨文Oracle 数据库 oci8