图片输出excel图(通过自动化)
我正在试图获得一个Excelgraphics的句柄,并通过MATLAB保存。
到目前为止,我已经设法循环表单,并获得graphics对象的句柄,但我不能保存它。
有谁知道如何导出对象为jpg
或png
或其他graphics格式?
我使用SaveAs
方法尝试下面的代码,但它不起作用
Workbook = Workbooks.Open(['file.name]); Sheets = Workbook.Sheets; for i = 1:Sheets.Count Activesheet = get(Sheets, 'Item',i); for j = 1:Activesheet.ChartObjects.Count obj = Activesheet.ChartObjects(j); obj.SaveAs('asfasfa.jpg') end end
Excel Chart
对象有一个Export
方法。
Microsoft文档: Chart.Export方法(Excel)
例如,我在第一个表格中创build了一个简单的excel文件(名为test_save_chart.xlsx
)和一个图表。 将这个图表导出为PNG
图片非常简单:
xfile = 'test_save_chart.xlsx' ; exl = actxserver('excel.application'); %// Create a COM server exlFile = exl.Workbooks.Open( [pwd '\' xfile] ); %'// Open the file chartobj = exlFile.Sheets.Item('Sheet1').ChartObjects(1) ; %// get a handle to the chart object chartobj.Chart.Export('C:\TEMP\StackExchange\testChartExport.png','PNG') %// export to PNG
在你的情况下,在你的循环中,它是如此简单:
chartobj = Activesheet.ChartObjects(j) ; chartobj.Chart.Export('your_filename_here.png','PNG')
既然你在循环中这样做,你将不得不dynamic生成文件名(否则你会一遍又一遍覆盖同一个文件)。
请注意, png
格式build议超过jpg
,特别适用于像excel图表制作的“线条艺术”风格的图片。
- 使用COM打开一个excel文件并保存为.xml文件
- Excel通过PowerShell的COM对象
- 为COM Interop添加一个.NET EXE作为VBA参考(在Excel中)
- 如何通过COM遍历Excel 2003工作表中的所有分页符
- 自动化Excel从Python获取“TypeError:'unicode'对象不可调用”Range.Address上
- 是否有可能使用R作为Excel中的“独立”不可见的计算后端?
- 如何在Python中导入COM对象名称空间/枚举?
- 如何获得在VB.NET中编写的用于Excel的COM服务器安装并注册在自动化服务器列表中?
- 是否有一种简单的方法来使用Excel COM接口获取Range的“A1”样式坐标?