Открыть MS Excel от Matlab - PullRequest
       3

Открыть MS Excel от Matlab

3 голосов
/ 16 марта 2012

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

Ответы [ 3 ]

4 голосов
/ 16 марта 2012

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

winopen('myFile.xlsx')
2 голосов
/ 16 марта 2012

Да, это возможно.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, чтобы точно определить, какие команды вам нужно отправить.Попробуйте запустить здесь .Я использовал эту технику для извлечения Word из Matlab для создания документа отчета, но я никогда не использовал Excel таким образом, поэтому, к сожалению, я не могу помочь вам с мрачными подробностями!

2 голосов
/ 16 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...