我正试图处理excel图并通过MATLAB保存它。
到目前为止,我已设法循环使用工作表并获取图形对象的处理但我无法保存它
有谁知道如何将对象导出为write.xlsx(datasetr_df, file = file.path("Out_Put_Dir_Path", paste0("Manually_writting_name_output_name_same_as_Input_Dir",".xlsx")),sheetName="Sheet1",col.names=TRUE, row.names=FALSE)
或jpg
或其他图形格式?
我使用png
方法尝试了下面的代码,但它不起作用
SaveAs
答案 0 :(得分:5)
excel Chart
对象采用Export
方法。
Microsoft文档:Chart.Export Method (Excel)
对于该示例,我在第一张表中创建了一个带有图表的简单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')
由于您是在循环中执行此操作,因此您必须动态生成文件名(否则您将反复覆盖同一文件)。
请注意,建议png
格式优于jpg
格式,特别适用于"线条艺术"像excel图表一样的图片风格。