Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将excel图表导出为图片(通过自动化)_Matlab_Vba_Excel_Com - Fatal编程技术网

Matlab 将excel图表导出为图片(通过自动化)

Matlab 将excel图表导出为图片(通过自动化),matlab,vba,excel,com,Matlab,Vba,Excel,Com,我正在尝试获取excel图形的句柄,并通过MATLAB保存它 到目前为止,我已经成功地在工作表中循环并获得图形对象的句柄,但我无法保存它。 有人知道如何将对象导出为jpg或png或其他图形格式吗 我使用SaveAs方法尝试了下面的代码,但不起作用 Workbook = Workbooks.Open(['file.name]); Sheets = Workbook.Sheets; for i = 1:Sheets.Count Activesheet = get(Sheets, 'Item'

我正在尝试获取excel图形的句柄,并通过MATLAB保存它

到目前为止,我已经成功地在工作表中循环并获得图形对象的句柄,但我无法保存它。
有人知道如何将对象导出为
jpg
png
或其他图形格式吗

我使用
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
图表
对象具有一个
导出
方法

Microsoft文档:


例如,我创建了一个简单的excel文件(名为
test\u save\u chart.xlsx
),第一页中有一个图表。将此图表导出为
PNG
图片非常简单:

xfile='test_save_chart.xlsx';
exl=actxserver('excel.application');%//创建一个COM服务器
exlFile=exl.Workbooks.Open([pwd'\'xfile]);%'//打开文件
chartobj=exlFile.Sheets.Item('Sheet1')。ChartObjects(1);%//获取图表对象的句柄
chartobj.Chart.Export('C:\TEMP\StackExchange\testChartExport.png','png')%//导出到png

在您的情况下,在您的循环中,它非常简单:

chartobj=Activesheet.ChartObjects(j);
Export('your_filename_here.png','png')

由于您是在循环中执行此操作,因此必须动态生成文件名(否则您将一次又一次地覆盖同一文件)


请注意,建议使用
png
格式,而不是
jpg
,特别是“线条艺术”风格的图片,如excel图表制作。

刚刚编辑的问题绝对完美,非常感谢。工作得很有魅力