从MATLAB检查Microsoft Excel的打开状态

时间:2014-07-31 08:57:51

标签: excel matlab xls xlsx

我使用以下代码从MATLAB打开一个文件:

winopen('myFile.xlsx')

我希望MATLAB在用户在Microsoft Excel中关闭此文件后删除此文件。我该怎么办?

2 个答案:

答案 0 :(得分:1)

要检查可执行文件是否正在运行(即使在后台),请使用Window" tasklist.exe"

要知道Excel是否从Matlab运行,请尝试

ExeName = 'EXCEL.EXE';
[~,msg] = system(['tasklist /fi "ImageName eq ' ExeName '"']);
IsOpen  = ~isempty(strfind(msg,upper(ExeName)));

IsOpen是一个布尔值,如果打开Excel,则为true。如果您在while循环或计时器功能中使用它,请检查文件是否打开。

我认为只是尝试删除文件更简单。如果它正在使用中,Matlab将不允许您删除它。

答案 1 :(得分:0)

此代码将执行此操作:

    while exist([File_Path '~$File_name'], 'file')==2       
    end
    delete([File_Path 'File_name']);

谢谢你@Yvon的帮助和你的评论。