這是我需要做的:保存圖表到一個不同的Excel工作表
- 1)利用Matlab
- 2打開現有的Excel文件)將數據寫入利用Matlab Excel文件(目前使用xlswrite1)
- 3)插入圖表到Excel文件中的一個已經存在的表,我指定
我得到了#1和#2的工作,但我卡在#3。
我爲#3嘗試過的東西要麼將它放在一個單獨的新工作表中(即使當我指定活動工作表時)或將它放在正確的工作表中,但我不知何故失去了圖表的句柄,分配ChartType
而不會出現錯誤。
這是我需要做的:保存圖表到一個不同的Excel工作表
我得到了#1和#2的工作,但我卡在#3。
我爲#3嘗試過的東西要麼將它放在一個單獨的新工作表中(即使當我指定活動工作表時)或將它放在正確的工作表中,但我不知何故失去了圖表的句柄,分配ChartType
而不會出現錯誤。
下面是由Mathworks支持團隊提供的代碼(下面提供的鏈接),用於在MATLAB工作表中插入MATLAB圖形。您可能需要將工作表更新到預定的工作表。
% Create sample image from figure
img = 'figure1.png';
plot(1:10);
print('-dpng', img);
% Get handle to Excel COM Server
Excel = actxserver('Excel.Application');
% Set it to visible
set(Excel,'Visible',1);
% Add a Workbook
Workbooks = Excel.Workbooks;
Workbook = invoke(Workbooks, 'Add');
% Get a handle to Sheets and select Sheet 1
Sheets = Excel.ActiveWorkBook.Sheets;
Sheet1 = get(Sheets, 'Item', 1);
Sheet1.Activate;
% Alternative 1 BEGIN.
% Get a handle to Shapes for Sheet 1
Shapes = Sheet1.Shapes;
% Add image
Shapes.AddPicture([pwd '\' img] ,0,1,400,18,300,235);
% Alternative 1 END.
% Alternative 2 BEGIN.
% Add image
Sheet1.invoke('Pictures').Insert([pwd '\' img]);
% Alternative 2 END.
% Save the workbook and Close Excel
invoke(Workbook, 'SaveAs', [pwd '\myfile.xls']);
invoke(Excel, 'Quit');
% In the above code (Alternative 1), Excel's Shapes.AddPicture Method is used to insert a figure in the Excel Sheet - Mathworks.
Link上述響應:
函數img2xlsx
由H K.Berg - 其中一個或多個圖像(多個)傳送到新的或現有XLSX文件)可以是從downloaded MATLAB中部
謝謝,我想通了。而解決方案2實際上並不是我想要做的。我想在MATLAB中創建Excel中的Excel圖形,而不僅僅是將一個MATLAB圖形插入到Excel中。 這就是我最終使用的: Excel = actxserver('Excel.Application'); Workbook = invoke(Excel.Workbooks,'Open',fullfilename); resultsheet = name; sheet = get(Excel.Worksheets,'Item',resultsheet); invoke(sheet,'Activate'); Chart = Excel.ActiveSheet.Shapes.AddChart2; activate sheet命令似乎不適用於invoke chart命令。 – K255
你在使用Linux還是Windows? – bushmills