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

조회 수: 23 (최근 30일)
Mamoru Mabuchi
Mamoru Mabuchi 2022년 3월 12일
답변: Jiro Doke 2022년 3월 16일
MATLABからExcelファイルを開きたいです。
ただし、該当のファイルが開いている時に、二重で開かないようにしたいです。
どのように記述すればよいでしょうか
下記は、ファイルを開く時のコマンドです。Test.xlsxが予め開いている時には、Openを実行しないようにしたいです。
excelapp = actxserver('Excel.Application');
excelapp.Visible = 1;
wkbk = excelapp.Workbooks;
wdata = Open(wkbk,'C:\Test.xlsx');

답변 (1개)

Jiro Doke
Jiro Doke 2022년 3월 16일
こんな感じで出来ると思います.
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

태그

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!