有没有办法让Matlab直接在MS Excel中打开excel文件?我不是说只是读取数据,而是实际打开MS Excel。 我有一个处理一些数据并将其保存到.xlsm中的脚本。这个.xlsm包含auto_open宏,它会生成一个报告并将其保存到另一个.xls中。 我希望该过程尽可能自动。到目前为止,当matlab脚本结束时,需要手动打开.xlsm文件。是否有可能通过Matlab做到这一点? (.m文件和.xlsm位于同一文件夹中。)通过Matlab打开MS Excel
3
A
回答
4
打开(但不关闭),Excel文件的最简单方法是使用WINOPEN:
winopen('myFile.xlsx')
2
Excel具有强大的COM接口,可让您从其他应用程序控制它。
看看这里的东西
http://www.mathworks.co.uk/help/techdoc/ref/actxserver.html
而且这里把他们放在一起的例子MATLAB的一面。 。 。
https://www.quantnet.com/forum/threads/interface-between-matlab-vba-excel.2090/
或这里是另一个例子
http://www.mathworks.co.uk/support/solutions/en/data/1-716EAM/index.html?solution=1-716EAM
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,所以很遗憾,我无法帮助您了解血腥细节!
我一直在试图解决一切了几个小时的actxserver错误,但到底是简单的“ winopen“完美的作品。不知道怎么可能忽略这个功能......谢谢大家;) – Martin 2012-03-16 12:47:33