2016-06-30 40 views
0

這是我需要做的:保存圖表到一個不同的Excel工作表

  • 1)利用Matlab
  • 2打開現有的Excel文件)將數據寫入利用Matlab Excel文件(目前使用xlswrite1)
  • 3)插入圖表到Excel文件中的一個已經存在的表,我指定

我得到了#1和#2的工作,但我卡在#3。

我爲#3嘗試過的東西要麼將它放在一個單獨的新工作表中(即使當我指定活動工作表時)或將它放在正確的工作表中,但我不知何故失去了圖表的句柄,分配ChartType而不會出現錯誤。

+0

你在使用Linux還是Windows? – bushmills

回答

0

下面是由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中部

+0

謝謝,我想通了。而解決方案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

相關問題