首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab Actxserver :如何终止matlab中actxserver打开的进程?

Matlab Actxserver :如何终止matlab中actxserver打开的进程?
EN

Stack Overflow用户
提问于 2014-07-04 14:12:08
回答 1查看 4.6K关注 0票数 1

我想在MATLAB中打开和关闭一个Excel文件。我在下面尝试过代码,但是它在用actxserver关闭过程时失败了

代码语言:javascript
复制
h.WorkBooks.Item(wbkname).Close;

这是我的代码,我如何终止excel文件?

代码语言:javascript
复制
.Quit
.delete

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

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-04 18:54:40

下面是一个创建新电子表格、编写一些值、保存文件和退出的示例。Excel进程在结束时完全终止。

代码语言:javascript
复制
% 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

如果您希望在没有用户交互的情况下在后台执行自动化,您可能还需要适当地设置某些性质

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24576193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档