2012-03-16 4 views
3

Есть ли способ сделать Matlab открытым Excel файлы непосредственно в MS Excel? Я не хочу просто читать данные, но физически открывать MS Excel. У меня есть сценарий, обрабатывающий некоторые данные и сохраняющий его в .xlsm. Этот .xlsm содержит макрос auto_open, который генерирует отчет и сохраняет его в другой .xls. Я хочу, чтобы процесс был максимально автоматическим. Пока, когда скрипт matlab заканчивается, файл .xlsm должен быть открыт вручную. Можно ли это сделать через Matlab? (Файл .m и .xlsm находятся в одной папке.)Открыть MS Excel от Matlab

ответ

4

Самый простой способ открыть (но не закрывать) файл Excel является использование WINOPEN:

winopen('myFile.xlsx') 
+0

Я пытался решить все ошибки actxserver в течение нескольких часов, но в конце концов просто " winopen "отлично работает. Не знаю, как мог упустить эту функцию ... Спасибо всем;) – Martin

2

Excel имеет мощный COM-интерфейс, который позволяет вам управлять им из другого приложения.

Посмотрите здесь MatLab сторону вещей

http://www.mathworks.co.uk/help/techdoc/ref/actxserver.html

И здесь для примера положить все это вместе. , ,

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); 

Вам нужно будет посмотреть на документации от Microsoft для интерфейса автоматизации Excel, чтобы точно выяснить, какие команды вам необходимо отправить. Попробуйте начать here. Я использовал эту технику для вождения Word из Matlab, чтобы создать отчетный документ, но я никогда не использовал Excel таким образом, поэтому, к сожалению, я не могу помочь вам с деталями gory!

Смежные вопросы