VBA导出Excel图片



原理:

  1. Excel文档里面的图片都是Shape对象,遍历ActiveSheet的Shapes集合;
  2. 将对应的Shape对象,设置到临时变量中;
  3. 在当前的Sheet里面添加ChartObject对象,并用前面取到的Shape的宽和高设置ChartObject对象的区域大小;
  4. 调用Shape对象的Copy方法,将其拷贝到剪切板;
  5. 激活前面创建的ChartObject对象,使用其对应的Activate方法,如果不做这步会提示错误;
  6. 将前面拷贝的图片,黏贴到ChartObject对象的Chart属性当中;意味着在插入的ChartObject对象里面贴了一幅图片;
  7. 再调用ChartObject对象的Chart属性中的Export方法,将图片导出到对应的目录,并命名。

例子代码如下:

Dim i As Long

Dim picRow As Long

Dim sku As String

Dim s As Shape

Dim c As ChartObject

For i = 1 To ActiveSheet.Shapes.Count

Set s = ActiveSheet.Shapes(i)

picRow = s.TopLeftCell.Row

sku = ActiveSheet.Cells(picRow, 12)

If sku <> "" Then

s.Copy

Set c = ActiveSheet.ChartObjects.Add(0, 0, s.Width, s.Height)

c.Activate

c.Chart.Paste

c.Chart.Export "D:\jibbitz\" & sku & ".jpg"

c.Delete

End If

Next i

这里判断图片对应行的第12列是否有值,如果有责将其作为图片的名字,导出图片。



时间: 2024-10-29 21:57:26

VBA导出Excel图片的相关文章

导出excel图片报表

ExcelExportHelper.cs using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Collections;using System.IO;using System.Data.OleDb;using System.Data;using Excel = Microsoft.Office.Interop.Excel;using System.Reflect

PHP导入导出excel表格图片(转)

写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wps等进行word等的生成之类的文章 )但是在读的时候,只用过一种,具体是什么忘了,要回去翻代码了.基本上导出的文件分为两种:1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件.优

NPOI导出excel(带图片)

近期项目中用到Excel导出功能,之前都是用普通的office组件导出的方法,今天尝试用下NPOI,故作此文以备日后查阅. 1.NPOI官网http://npoi.codeplex.com/,下载最新工具包. 2.选择.net版本(例如dotnet4),引用其中的dll. 3.后台代码 using System; using System.Web; using System.Data; using System.Configuration; using System.IO; using Test

EPPLUS 导出excel,包括文本,图片

string[] ids = this.dDataList.SelectedIds;            if (ids.Length != 1)            {                Soyisoft.Web.WebUtil.ShowMessage(this.Page, "请选择一行数据");                return;            } string[] idArr = ids[0].Split('-');            if

poi导出Excel与项目的结合-案例(包含图片的设置)

不管是xml的导入和导出还是Excel的导入和导出,对应的无非都是文件的解析和下载,下面来讲解的主要是导出(下载) 导入:上传--->解析并组装javaBean(javaBeanList)-->插入数据库(多数为数据库) 导出:查询需要下载的数据-->将JavaBean生成对应的文件(eg:xml.poi.json等)-->下载 poi导出--即下载poi 前台: 下载form表单提交(下载不可以采用ajax提交)(form表单提交查看常识题中form表单的几种提交方式,即给for

Java web项目从eclipse上移动到tomact服务器上,之路径更改,包括显示图片和导出excel

//项目做完之后,在本机电脑运行完全正常,上传图片,显示图片,导出excel,读取excel等功能,没有任何问题,但是,当打成war包放到服务器上时,这些功能全部不能正常使用. 最大的原因就是,本机测试跟服务器上的路径发生了变化. 记录一下,上传图片和显示图片的代码 1.前端页面: <form action="${pageContext.request.contextPath}/UploadWeiXiuServlet" enctype="multipart/form-d

laravel-admin 自定义导出excel功能,并导出图片

https://www.jianshu.com/p/91975f66427d 最近用laravel-admin在做一个小项目,其中用到了excel导出功能. 但是laravel-admin自带的导出功能不带图片,并且导出的数据有很多冗余的字段,并非我所需要的功能. 所以参考官方文档调整代码,实现了自定义导出excel文件,并且带上图片: 步骤如下: 1. 安装laravel-excel插件 可参考laravel5.5 中使用laravel-excel composer require maatw

excel中vba将excel中数字和图表输出到word中

参考:https://wenku.baidu.com/view/6c60420ecc175527072208af.html 比如将选区变为图片保存到桌面: 1 Sub 将选区转为图片存到桌面() 2 Dim ans As Byte, Pic As String, Paths As String 3 On Error Resume Next 4 Paths = CreateObject("WScript.Shell").SpecialFolders("Desktop"

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