Matlab Actxserver:我如何终止由actxserver在matlab中打开的进程 [英] Matlab Actxserver :How could I terminate process opened by actxserver in matlab

查看:3146
本文介绍了Matlab Actxserver:我如何终止由actxserver在matlab中打开的进程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在MATLAB中打开和关闭Excel文件。
我尝试过下面的代码,但关闭过程失败与 actxserver

I want to open and close an Excel file in MATLAB. I have tried the code below, but it failed on closing process with actxserver

h.WorkBooks.Item(wbkname).Close;

这里是我的问题的代码,我如何能终止excel文件?

here is my code for this issue, how can I terminate the excel file?

.Quit
.delete


b $ b

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

I also tried to close excel file via VBA sub-module, but it gives me an error message:

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进程在最后完全终止。

Here is an example that creates a new spreadsheet, write some values, save the file and exit. The Excel process is cleanly terminated at the end.

% 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

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

You might additionally want to set certain properties appropriately, if you want the automation to be performed in the background with no user interaction:

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

这篇关于Matlab Actxserver:我如何终止由actxserver在matlab中打开的进程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆