【问题标题】:Matlab Actxserver :How could I terminate process opened by actxserver in matlabMatlab Actxserver:我如何终止 matlab 中 actxserver 打开的进程
【发布时间】:2014-08-25 21:43:12
【问题描述】:

我想在 MATLAB 中打开和关闭一个 Excel 文件。 我在下面尝试过the code,但在使用actxserver 关闭进程时失败了

h.WorkBooks.Item(wbkname).Close;

这是我解决此问题的代码,如何终止 excel 文件?

.Quit
.delete

我也尝试通过 VBA 子模块关闭 excel 文件,但它给了我一个错误消息:

fullFileName  = [pwd '\KOSPI200_1월.xlsm'];
excel = actxserver('Excel.Application'); 
file = excel.Workbooks.Open(fullFileName);
excel.Run('jongho_bot_initial');
excel.Run('jongho_bot_loop',2);

【问题讨论】:

  • 而错误信息是...?

标签: excel matlab com office-interop


【解决方案1】:

这是一个创建新电子表格、写入一些值、保存文件并退出的示例。 Excel 进程最终完全终止。

% create Excel COM server
excel = actxserver('Excel.Application');
excel.Visible = true;  % make the window visible

% create new workbook
wb = excel.Workbooks.Add();

% get "Sheet1" and activate it
sheet = wb.Sheets.Item(1);
sheet.Activate();

% select a 5x5 range, and fill it with some numeric values
sheet.Range('A1:E5').Value = num2cell(magic(5));

% save spreadsheet file
excel.DisplayAlerts = false;  % overwrite file without prompts
wb.SaveAs(fullfile(pwd(),'myfile.xlsx'));

% close spreadsheet
wb.Close(false);

% quit Excel
excel.Quit();

% delete handles and clear variables
delete(excel);
clear sheet wb excel

如果您希望自动化在后台执行而无需用户交互,您可能还需要适当地设置 certain properties

excel.Visible = false;         % invisible Excel window
excel.ScreenUpdating = false;  % turn off screen update to run faster 
excel.Interactive = false;     % non-interactive mode, with no keyboard/mouse
excel.DisplayAlerts = false;   % no prompts or alert messages
excel.UserControl = false;     % object freed when reference count reaches zero

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2012-12-05
    • 2023-03-11
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    相关资源
    最近更新 更多