Вопрос по matlab, excel – Matlab автоматически сохраняет файл Excel, используя интерфейс ActiveX

4

У меня есть код в Matlab. После того, как я запустил свою программу, файл «example2.xlsx» был создан.

Теперь у меня есть код, приведенный ниже, и я хочу, чтобы matlab заменил текущий «example2.xlsx» новым "example2.xlsx" (сохранение автоматически без запроса на замену):

e = actxserver ('Excel.Application'); % # open Activex server
filename = fullfile(pwd,'example2.xlsx'); % # full path required
ewb = e.Workbooks.Open(filename); % # open the file
esh = ewb.ActiveSheet;


str = num2str(num_rows+1);
esh.Range(strcat('J',str)).Interior.Color = clr;

sheet1 = e.Worksheets.get('Item', 'Sheet1');
range1 = get(sheet1,'Range', strcat('A',str),strcat('I',str));
range1.Value = values{num_rows+1};

[num, txt, raw] = xlsread('example2.xlsx');
num_rows = length(num(:,1));


xlWorkbookDefault = 51; % # it's the Excel constant, not sure how to pass it other way
ewb.SaveAs(fullfile(pwd,'example2'), xlWorkbookDefault)
ewb.Close(false)
e.Quit
e.delete

Ваш Ответ

1   ответ
6

el значение false, чтобы эти диалоговые окна не появлялись.

Ниже приведена упрощенная версия вашего кода:

e = actxserver ('Excel.Application'); % # open Activex server
filename = fullfile(pwd,'example2.xlsx'); % # full path required
ewb = e.Workbooks.Open(filename); % # open the file
esh = ewb.ActiveSheet;

sheet1 = e.Worksheets.get('Item', 'Sheet1');
range1 = get(sheet1,'Range', 'A1');
range1.Value = 3;

set(e, 'DisplayAlerts', 0); % # Stop dialog!

xlWorkbookDefault = 51; % # it's the Excel constant, not sure how to pass it other way
ewb.SaveAs(fullfile(pwd,'example2'), xlWorkbookDefault)
ewb.Close(false)
e.Quit
e.delete
спасибо Алекс, это помогает мне! хорошего дня, спасибо! :]] Alon Shmiel

Похожие вопросы