C#中操作Word(9)—— 向Word中插入图表的三种方法(二)
我们接着上一文的内容介绍在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中插入图表的三种方法(二)相关推荐
- C#中操作Word(8)—— 向Word中插入图表的三种方法(一)
一. 前言 本文主要介绍向word中插入图表的方法.方法共有三种,每一种都有自己的适用范围和利弊.介绍之前,我们准备实验用的文档,做一个如下图所示的word模板,我们要做的的是在这个名叫chart的书 ...
- 【在PowerPoint中插入视频的三种方法】
为了能更好地帮助大家合理地在PowerPoint课件中插入和播放视频文件, 在PowerPoint中插入视频的三种方法 ,本文特向大家介绍PowerPoint中插入和处理视频的三种方法. 直接播放视频 ...
- Word怎么转换成PDF格式?这三种方法教你如何转换
怎么把Word文档转换成PDF文件格式呢?相信小伙伴们在办公过程中会习惯使用Word文档来编辑文件,编辑好后如果需要发送文件的话会将文档转换成PDF格式来发送,原因就是PDF格式独有的兼容性和稳定性能 ...
- Word文档怎么横向排版?这三种方法简单高效专业
我们在利用Word文档处理日常工作时,为了文档的美观,我们会经常对Word文档进行各种形式的排版,比如对Word文档进行横向排版.如果有小伙伴不知道该如何进行横向排版,那么今天小编将要向大家分享三个横 ...
- node.js中mysql批量插入更新的三种方法
[背景]在项目中遇到一个批量插入数据的需求,由于之前写过的sql语句都是插入一个对象一条数据,于是去网上搜关键词 "sql批量插入"."mysql批量插入"等, ...
- android sdk与adt版本,eclipse中sdk与adt版本不兼容该怎么解决? 三种方法帮你搞定
安卓开发过程中经常遇到sdk版本adt版本不相符,sdk版本过高的问题,这篇经验帮助你解决这个问题,如果是adt版本过高,请升级sdk,如果出现的错误如下图所示表示sdk版本过高,下面介绍三种方法 软 ...
- HTML中怎样把文字分两栏显示,word设置一页分两栏的三种方法
我们在阅读报纸的时候,经常看到分栏的现象,这就是通过Word当中的"分栏"功能进行设置的,那么下面就由学习啦小编给大家分享下word设置一页分两栏的技巧,希望能帮助到您. word ...
- html中页面整体居中,css实现网页内容整体居中的三种方法总结
下面我们来看一款利用css实现div中内容居中的方法,下面整理了三种css实现网页内容整体居中方法,希望对各位朋友会有所帮助. 例 代码如下 复制代码 -//W3C//DTD XHTML 1.0 Tr ...
- 查找字符串中出现字符最多次数和出现的字符(三种方法)
第一种 var str = "abcccwwwasdasfqwweqewqeqwnn"var arr = str.split("")var Arr = arr. ...
最新文章
- Microbiome:宏基因组分箱流程MetaWRAP简介
- 2017,公司必须换掉的六种人,别心软!
- Linux 忘记root密码(记录)
- GitHub上的编程语言:JavaScript领衔Java次之
- Java的知识点19——异常机制Exception
- CVPR2020最全整理:分方向论文下载,Github源码、论文解读等[计算机视觉][目标检测]
- 有理有据!为什么String选择数字31作为hashCode方法乘子?
- 流传在程序员中的传说,你知道几个?
- html语言 大全,HTML语言大全
- 我开着超市,不好好做自己的生意,每天却为社区团购平台打工
- FLOPs衡量模型复杂度
- 新库上线 | CnOpenData境外投资企业(机构)名录数据
- 1实训(学生信息管理系统)
- matlab中switch函数用法
- linux pv 信号量,pv操作与信号量(示例代码)
- MySQL8.0中消失又回来的磁盘临时表
- 微信地图wgs84坐标,gcj02坐标,bd09坐标转换
- 跟小老虎博客并驾齐驱的博客虎兄虎弟dbzhang800
- 东大22春电子政务X《电子政务》在线平时作业3参考非答案
- GPS失锁和丢包区别
热门文章
- 基于Matlab使用地面雷达探测和跟踪LEO卫星星座仿真(附源码)
- js简单实现百度地图雷达探测效果
- 苹果组建新团队自研无线芯片,欲摆脱第三方束缚!
- 下载kaggle比赛的数据集
- Noisy Channel Language Model Prompting for Few-Shot Text Classification
- Android 实现仿微信朋友圈九宫格图片+NineGridView+ImageWatcher(图片查看:1.预览,2.拖动,3.放大,4.左右滑动,5.长按保存到手机)的功能
- 特征工程的准备:特征理解
- 打开虚拟机时报硬盘UUID 已经存在的解决办法
- 板材品牌排名之橱柜用生态板
- php如何连接数据库 甲骨文,Windows PHP/phpStudy 连接 甲骨文Oracle 数据库 oci8