系统版本:Win7 64位

Matlab版本:R2015b

问题描述:使用excel的操作函数,比如xlsread,xlswrite,导致excel进程无法终止,任务管理器中仍残留excel进程,打开excel文档,修改后不提示保存。

参考:http://www.mathworks.com/matlabcentral/answers/98261-why-do-some-excel-processes-fail-to-terminate-after-using-xlsread-xlswrite-or-xlsfinfo-in-matlab

进程显示automation -Embedding,应该是某个应用占用了这个进程,然而我并没有找到是哪个应用。

解决方法:

之前的Matlab R2012a并没有出现此问题,问题是在R2015b版本中的%Program Files%MATLAB\R2015b\toolbox\matlab\iofun\+matlab\+io\+internal\getExcelInstance.m文件,代码:

 function app = getExcelInstance
% Copyright The MathWorks, Inc. persistent excelApplication;
if isempty(excelApplication) || ~isactive || excelApplication.Visible
% If Excel is not available, this will throw an exception. If
% Excel has been made visible, we assume the user opened the
% worksheet outside MATLAB using the same Excel process, and so we
% should start a new process.
excelApplication = actxserver('Excel.Application');
end
app = excelApplication; function tf = isactive
% Try accessing a readonly property of the COM server to see if it is
% active.
try
get(excelApplication, 'Version');
tf = true;
catch
excelApplication.delete;
excelApplication = [];
tf = false;
end
end
end

第四行的关键词persistent,如果直接换成excelApplication=[],则不会出现进程残留的情况;

这个文件应该是R2015b版本中加上去的,之前的版本excel操作函数是直接调用actxserver函数,也没有出现此问题;

个人解决方案:换成R2015a版本,完美运行;

MATLAB各版本的下载地址(可能需要梯子):http://www.eng.utah.edu/downloads/matlab/

Matlab使用xlsread, xlswrite函数导致excel进程无法终止的问题的更多相关文章

  1. ShellExecuteEX打开iqy文件导致excel hang的原因分析

    1. 问题 当在console中调用API ShellExecuteEx打开"test.iqy"文件时,发现excel会hang住,console退出后excel才会响应,但直接双 ...

  2. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  3. linux 中的进程wait()和waitpid函数,僵尸进程详解,以及利用这两个函数解决进程同步问题

    转载自:http://blog.sina.com.cn/s/blog_7776b9d3010144f9.html 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / wait ...

  4. Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量

    Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量 一丶线程的理论知识 什么是线程:    1.线程是一堆指令,是操作系统调度 ...

  5. fork函数创建新进程过程分析

    gdb调试执行流程,首先设置断点b sys_clone,当在shell下输入fork命令后,系统执行至断点,接下来按步执行: 判断是否被跟踪 判断是否被创建为轻量级进程(vfork) 判断父进程是否被 ...

  6. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  7. 杀死当前Excel进程

    说明: 代码编写过程中,有时需要杀死当前Excel进程,而不影响其他Excel进程. 代码如下: 添加引用: //杀死当前进程的API引用 using System.Runtime.InteropSe ...

  8. matlab 全部的随机数函数

    matlab 全部的随机数函数 (一)Matlab内部函数 a. 基本随机数 Matlab中有两个最基本生成随机数的函数. 1.rand() 生成(0,1)区间上均匀分布的随机变量.基本语法: ran ...

  9. python实现类似于Matlab中的magic函数

    参考这篇文章的代码封装了一个类似Matlab中的magic函数,用来生成魔方矩阵. #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy ...

随机推荐

  1. AvalonDock结合MVVM模式的应用

    原始代码及文章参考:http://www.codeproject.com/Articles/239342/AvalonDock-and-MVVM 环境:VS2010 源码:http://files.c ...

  2. 调优UWSGI,后台启动,热更改PY,杜绝502

    记得加启动参数: --daemonize /var/log/uwsgi.log --post-buffering 32768 --buffer-size 32768 reload.set #!/bin ...

  3. Java位运算总结:位运算用途广泛《转》

    前天几天研究了下JDK的Collection接口,本来准备接着研究Map接口,可是一查看HashMap类源码傻眼咯,到处是位运算实现,所以我觉得还是有必要先补补位运算知识,不然代码看起来有点费力.今天 ...

  4. MySQL安装完可以使用,但是找不到对应的系统服务

    为何我用 mysqld 启动 mysql 的服务后,在系统“服务”中查不到mysql服务呢?首先声明,我的服务启动成功了,因为我可以另开一个 cmd 窗口进行mysql登录,登录后可以进行各种操作.用 ...

  5. 【HDOJ】1394 Minimum Inversion Number

    逆序数的性质.1. 暴力解 #include <stdio.h> #define MAXNUM 5005 int a[MAXNUM]; int main() { int n; int i, ...

  6. 等方案及设备提供商 有需要的可以联系QQ561454825,电话:13779953060,我们提供最专业的无线WIFI认证系统及根据您的需要修改软件

    WayOs智能路由.EasyRadius云计费.POE远程供电.WIFI城中村方案.EPON实现FTTB+LAN城中村方案. 等方案及设备提供商 有需要的可以联系QQ561454825,电话:,我们提 ...

  7. 【转】Android--多线程之Handler--不错

    原文网址:http://www.cnblogs.com/plokmju/p/android_handler.html 前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了 ...

  8. 2015第45周五IE11实用开发工具摘录及设置IE缓存

    UI响应工具的作用 UI响应工具顾名思义就是查看UI响应时间的工具,通过这个工具可以帮助我们确定应用中的哪些组件占用了多少CPU时间,让我们之后可以更有针对性的进行优化,从而最大限度地改善应用性能,同 ...

  9. Go语言的学习

    1.配置环境变量 2.本地阅读报的说明和文档 不用FQ window+R  出现黑窗口   执行    godoc -http :8080 在本地浏览器 localhost:8080 回车 3多行注释 ...

  10. GPG error: the public key is not available

    GPG error: The following signatures couldn't be verified because the public key is not available I h ...