2012-03-16 74 views
3

有沒有辦法讓Matlab直接在MS Excel中打開excel文件?我不是說只是讀取數據,而是實際打開MS Excel。 我有一個處理一些數據並將其保存到.xlsm中的腳本。這個.xlsm包含auto_open宏,它會生成一個報告並將其保存到另一個.xls中。 我希望該過程儘可能自動。到目前爲止,當matlab腳本結束時,需要手動打開.xlsm文件。是否有可能通過Matlab做到這一點? (.m文件和.xlsm位於同一文件夾中。)通過Matlab打開MS Excel

回答

4

打開(但不關閉),Excel文件的最簡單方法是使用WINOPEN

winopen('myFile.xlsx') 
+0

我一直在試圖解決一切了幾個小時的actxserver錯誤,但到底是簡單的「 winopen「完美的作品。不知道怎麼可能忽略這個功能......謝謝大家;) – Martin 2012-03-16 12:47:33

2

是的,這是可能的。 Matlab可以使用Excel的自動化界面來執行此操作和類似的任務。下面的代碼加載Excel,然後加載工作簿:

try 
    w = actxserver('Excel.Application');  % Fails if Excel not installed 
catch 
    w = []; 
end 

if ~isempty(w) 
    w.Workbooks.Open('D:\Documents\MATLAB\file.xlsx'); 
    % Your code here; 
    w.Quit; 
end 
delete(w); 

你需要看看微軟的Excel的自動化接口文檔,以找出你需要發送什麼命令。嘗試從here開始。 我已經使用這種技術來從Matlab驅動Word以生成報告文檔,但是我從來沒有以這種方式使用過Excel,所以很遺憾,我無法幫助您瞭解血腥細節!