在matlab命令行运行xlswrite('myExample.xlsx',[headers;values]);时,出现如下错误
Error using xlswrite (line 220)
Error: 服务器出现意外情况
浏览各个博客之后,发现xlswrite函数在调用的时候会占用excel的com端口,所以在调用xlswrite时要保证这个端口是开放的,也就是没有别其他程序所占用。打开任意一个excel(我的是16版)文档,点击文件--选项,弹出excel选项卡,在加载项中可以看到,活动应用程序加载项,以及非活动应用程序加载项;如下图所示
我经常使用福昕阅读器,该程序占用了excel的com端口,所以当Matlab再去调用这个端口时就会出现异常。具体解决方法如下:点击管理旁边的下拉菜单,选择COM加载项,点击转到,把福昕阅读器的前面的勾去掉,然后确定。如下图所示:
即可解决该问题
附一段演示代码:
%%%%%将matlab产生的数据导入到excel中并读取
clear
clear all
clc
values=randn(3,100); %%产生数据
xlswrite('myExample_2.xlsx',values); %%%将产生的数据以myExample_2.xlsx为文件名写入excel中
%%%从excel的第一个worksheet中读取数据 %%%读取全部数据
filename='myExample_2.xlsx';
A=xlsread(filename);
%%%%从excel中读取局部数据
filename='myExample_2.xlsx';
sheet=1;
xlRange='B2:C3';
subsetA=xlsread(filename,sheet,xlRange)
%%%读取B2:C3部分的数据
%%%%从excel文件myExample_2.xlsx中读取一整列的数据
filename='myExample_2.xlsx';
columnB=xlsread(filename,'B:B')
%%%读取数值型‘文本型和未处理的数据
[numdata,textdata,alldata]=xlsread('myExample_2.xlsx')