如何使用VSTO自动将Excel中的图表复制到Word

原文地址:https://code.msdn.microsoft.com/How-to-copy-Chart-in-Excel-a29f9029

该项目说明如何使用VSTO自动复制Excel中的图表

介绍

有些客户经常在MSDN论坛上提出这个问题。 但在MSDN画廊中没有现有的样本。 所以如果有样品,可以帮助客户解决问题。

客户证据:

http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/21a2fd18-d850-40d9-9d87-122bbaf9369d

http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/8d94da85-a95f-41c0-b7ec-6bf34fd0e151

创建项目

在Visual Studio 2013中打开项目(VBNETExportExcelChartToWord.vbproj)并构建它。

VB代码:

 1 Module Module1
 2     Sub Main(args As String())
 3         Try
 4             Dim appPath As String = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)
 5             Dim excelFile As String = appPath & Convert.ToString("\TestExcel.xlsx")
 6             Dim wordFile As String = appPath & Convert.ToString("\TestDoc.docx")
 7             ExportChartDataToWord(excelFile, wordFile)
 8             Console.WriteLine("Chart exported to word document successfully")
 9             Console.ReadLine()
10         Catch ex As Exception
11             Console.WriteLine(ex.Message)
12         End Try
13     End Sub
14     Sub ExportChartDataToWord(excelFile As String, wordFile As String)
15         Dim objExcelApp As Microsoft.Office.Interop.Excel._Application = New Microsoft.Office.Interop.Excel.Application()
16         objExcelApp.Visible = False
17         Dim workbook As Microsoft.Office.Interop.Excel._Workbook = objExcelApp.Workbooks.Open(excelFile)
18         Dim worksheet As Microsoft.Office.Interop.Excel._Worksheet = DirectCast(workbook.Sheets(1), Microsoft.Office.Interop.Excel.Worksheet)
19         Dim charObj As Microsoft.Office.Interop.Excel.ChartObject = worksheet.ChartObjects("Chart 1")
20         Dim objWordApp As Microsoft.Office.Interop.Word._Application = New Microsoft.Office.Interop.Word.Application()
21         If objWordApp Is Nothing Then
22             Console.WriteLine("Word could not be started. Check that your office installation and project references are correct.")
23             Return
24         End If
25         objWordApp.Visible = False
26         Dim objDoc As Microsoft.Office.Interop.Word._Document = objWordApp.Documents.Open(wordFile)
27         charObj.Chart.ChartArea.Copy()
28         objDoc.Application.Selection.PasteSpecial()
29         ‘Save the doc
30         objDoc.Save()
31         ‘Close the open docs and workbooks
32         objWordApp.Documents.Close()
33         objWordApp.Quit()
34         objExcelApp.Workbooks.Close()
35         objExcelApp.Quit()
36     End Sub
37 End Module

1.此示例从Excel文件中复制图表对象内容,然后使用VSTO方式将其粘贴到Word文档中。
2.在执行示例之前,将TestDoc.docx和TestExcel.xlsx文件复制到可执行位置。
3.运行可执行文件VBNETExportExcelChartToWord.exe,这将会将图表内容复制到名为TestDoc.docx的单词文档中?
4.打开word文档并验证其内容。

时间: 2024-12-06 04:01:05

如何使用VSTO自动将Excel中的图表复制到Word的相关文章

【经验】如何把EXCEL中的表格复制到VISIO?

第一种方法: 我用的是visio20031. 打开excel,当前页定位到你要复制内容的那个sheet页.关闭excel文档2.打开Visio,菜单“插入”--> 对象,弹出窗口中选择“根据文件创建”,点击浏览按钮,选择刚才那个excel文件,点“确定”3. 这时候你会看,到整个sheet页都拷贝过来了,用鼠标选择你要复制的区域,拷贝到其他空白区域,组合一下 第二种方法: 1.在Excel中选中需要的流程图,复制到剪贴板:2.在Visio中,执行“编辑-选择性粘贴”,指定粘贴为“图片(增强型图元

关于Excel中的图表技巧,这些你掌握了没?

当我们看到图表上密密麻麻的数据的时候,会不会和小编一样有种头大的感觉.其实我们可以在Excel表格中插入一些图表的,这样就可以直接的看出数据的变化了呀!有关Excel中的几种图表技巧给大家分享一下.1.给数据进行排序想要我们做的图表更加美观一点的话,有的时候我们是可以给他进行排排序的.先选中表格中的数据区域,然后点击[数据]选项卡,在该选项卡中找到对应的[排序],从主要关键词中选择一种要排序的关键词.排序依据和次序都需要修改成我们需要的格式哈!2.在表格中插入图表插入图表其实也不是一个很难的操作

使用Eclipse在Excel中找出两张表中相同证件号而姓名或工号却出现不同的的项

1:首先把Excel中的文本复制到txt中,复制如下: A表: 证件号                           工号  姓名 310110xxxx220130004 101 傅家宜310110xxxx220130005 102 顾音琪310110xxxx220130006 103 郭加峤310110xxxx220130007 104 胡奕蕾310110xxxx220130010 105 凌家蔚310110xxxx220130011 106 卢彦菁 B表: 证件号          

[Powershell / VBA] 把excel中的表分离成独立的excel文件

This article also published in Eng @ http://www.cnblogs.com/LarryAtCNBlog/p/4441201.html 今天在两个地方看到了这样一个问题:把一个excel中的表复制出来另存为一个独立的excel文件.其中一个是cnblog,另一个想不起来了.想到自己将来也可能遇到这样的问题,于是用powershell做了一个脚本以备不时之需. Powershell 当然,首先要有一个excel文件包括了一堆表. 用脚本自动化excel最常

VBA在Excel中的应用(三)

目录  Chart Export Chart Format Chart Lengend  Chart Protect  Chart Title  Chart Chart Export 1. 将Excel中的图表导出成gif格式的图片保存到硬盘上 Sub ExportChart()     Dim myChart As Chart     Set myChart = ActiveChart     myChart.Export Filename:="C:\Chart.gif", Filt

python实现自动从mysql数据库取指定数据记录到excel中-新建、追加

xlsxwriter,openpyxl,pandas 模块都可以实现往excel中写入数据,但是为了更简单方便的实现我的需求,选择将三种结合使用. #!/usr/bin/env python3 # -*-coding: utf-8 -*- # @Time:2019/12/26 16:55 # @Author: WSN import pandas as pd import pymysql, openpyxl, os, xlsxwriter # 设定excel文件名称 version = 'V1.4

Excel中的VBA编程

目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错.而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作. 1.以Excel 2007为例,如果要进行VBA编程,需要启用"开发工具" 选项.在Excel 选项对话框中勾选[在功能区显示"开发工具"选项卡]复选框. 在开发工具选项中点击"查看代码",打开Microsoft Visual Basic界面. 2.在M

一款强大的Office插件,教你如何自动生成Excel图表

项目背景: 在项目里面需要根据数据进行Excel的导出,但有时候不仅仅需要导出数据,而且还需要根据数据进行生成图表进行展示.之前的做法是先在模板里面进行公式的设定如下图1.1.这样就会遇到一个问题,那就是有一天需要不断的增加部门,一个两个还好,若突然需要加十几个或者二十几个,或者不是以部门为纵轴,那么可想而知改动就比较麻烦了,需要不断的修改模板,并且上传,而且这样的改法也比较死板,不适合.1.1图 如何解决 第一步:先查阅目前项目中所使用的NPOI相关的文档,看这个能不能支持相关的操作.很遗憾,

【图文】Excel中vlookup函数的使用方法

今天统计数据,用到了Excel中vlookup函数,第一次使用当然少不了百度,经过反复研究后,算是解决了问题,现整理成文档. 一.实现效果 Sheet1 Sheet2   注:上图中sheet1商品条码列(即D列)引用sheet2中商品条码(即B列)中的数据 二.vlookup函数调用说明 以sheet1中调用函数为例,如下: =VLOOKUP(A2,Sheet2!$A$2:$B$100,2,TRUE) 函数中共有四个调用参数 1)  第一个参数:A2 :可任意指定,也可以是B2.C2等.这一列