2012-03-16 120 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,所以很遗憾,我无法帮助您了解血腥细节!