解决MATLAB以及Excel读取文件失败问题
当我们使用MATLAB或者Excel打开xlsx表格文件时可能会碰到打开失败的问题,具体表现如下:
1.MATLAB
在MATLAB中使用如下类似代码:
f=500;
%使用xlsread函数读取文件
aref=xlsread(['ref/',num2str(f),'.xlsx']);%reference
然后报错如下:
错误使用 xlsread (line 257)
调用错误,调度异常:
源: Microsoft Excel
说明: Excel 无法打开文件“500.xlsx”,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
帮助文件: xlmain11.chm
帮助上下文 ID: 0
2.Excel
使用Excel打开表格文件报错如下:
直接打开报错
3.原因及其解决办法
这两个问题的原因是一致的,在排除文件格式损坏的前提下,多半为使用WPS的表格保存文件所致,网上提供的方法多为matlab调用WPS兼容性问题是需要重新采集数据并保存文件的,这里提供一种不需要重新采集数据的做法:
直接将后缀名改为xls,这时用Excel打开提示会变为:
修改后缀名的结果,直接点是打开即可
再打开后将源文件使用Excel再保存为xlsx格式即可,再次打开就没有问题了,这时使用matlab的xlsread函数读取文件也不会报错了。
这里简单说下原因,2007及之后版本的Excel文件是.xlsx格式,而xls是2003版本以前的格式,这说明WPS的底层是支持.xls的,但不支持.xlsx格式,类似的问题也可以用这种思路解决,即保存为早期版本,本质上都是兼容性的问题。