MATLABからEx​celファイルを開く​。ただし、ファイルが​開かれている時は2重​で開かない。

38 visualizaciones (últimos 30 días)
Mamoru Mabuchi
Mamoru Mabuchi el 12 de Mzo. de 2022
Respondida: Jiro Doke el 16 de Mzo. de 2022
MATLABからExcelファイルを開きたいです。
ただし、該当のファイルが開いている時に、二重で開かないようにしたいです。
どのように記述すればよいでしょうか
下記は、ファイルを開く時のコマンドです。Test.xlsxが予め開いている時には、Openを実行しないようにしたいです。
excelapp = actxserver('Excel.Application');
excelapp.Visible = 1;
wkbk = excelapp.Workbooks;
wdata = Open(wkbk,'C:\Test.xlsx');

Respuestas (1)

Jiro Doke
Jiro Doke el 16 de Mzo. de 2022
こんな感じで出来ると思います.
filename = 'C:\Test.xlsx';
try % 既存のExcelへ接続
excelapp = actxGetRunningServer('Excel.Application');
catch % Excelが起動していない場合は新規に起動
excelapp = actxserver('Excel.Application');
excelapp.Visible = true;
end
wkbk = excelapp.Workbooks;
% 開いているファイルの数
nFiles = excelapp.Workbooks.Count;
isOpen = false;
for id = 1:nFiles
if isequal(wkbk.Item(id).Fullname,filename)
% 既にファイルが開いている
isOpen = true;
wdata = excelapp.Workbooks.Item(id);
break
end
end
if ~isOpen
wdata = Open(wkbk,filename);
end

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!