matlab报错”xlswrite函数的Object returned error code: 0x800A03EC

来源:互联网 发布:suse linux yum配置 编辑:程序博客网 时间:2024/06/05 03:15

【总结】“matlab报错”xlswrite函数的Object returned error code: 0x800A03EC

(2013-07-27 09:43:29)
转载
标签: 

xlswrite

 

it

分类: matlab
matlab中使用xlswrite将数据写入Excel文档的时候有时候会出现报错:
Excel returned: Error: Object returned error code: 0x800A03EC.


情况一:
这个报错的原因有多种情况:最常见的情况是用户写入Excel中的数据量超过了Excel能够容纳的容量。Excel2003的工作区间为:65,536行256列。在Excel2010中工作区间有所增加,达到了1,048,576行16,384 列。
所以在遇到这个报错的时候,可以先尝试写入Excel文档的时候,将相关文档的名字命名为2007以上版本的扩展名(.xlsx),不用03版本的名字(.xls)。但如果数据量超过了Excel2010的容纳范围,就只能将数据拆分存到不同的Excel文件当中。

参考资料:Excel2010说明书 Excel specifications and limits

情况二:
如果Excel的表名(sheetname)中含有冒号(:)也会出现这个报错。例如使用如下语句:
xlswrite('test.xlsx',0, 'Sheet1:Sheet2', 'A1');
错误产生的原因:给xlswrite的第四行“range”引入了一个非法参数,xlswrite只支持指定范围使用Excel的“A1”。
如果确实需要对Excel中不同的sheet存储数据,可以采用循环的形式,其中num2str可以将数值型转换为字符串类型。 例如如下代码:
for i = 1:3
xlswrite('test.xls',1,['Sheet' num2str(i)],'A1');
end

情况三:
用户存入单个数据的大小超过了Excel可以接受的范围,如果你试着在Excel单元格写一个字符串长度大于1024个字符,就会出现报错。出现这种情况也可以尝试将相关文档的名字命名为2007以上版本的扩展名(.xlsx),不用03版本的名字(.xls)。

情况四:
如果向Excel单元格中输入的数据字段的大小为0×N,也会出现此类报错。

情况五:
如果在存储的数据当中,有以等于号“=”开头的数据,会出现此类报错。因为Excel的输入方式就是 = A1*A2。所以存储进去的同时会造成错误。

(PS:情况四和情况五来源于网络,没亲自验证。)
===============================================================================

参考资料:【MathWorks】Why do I receive an error (error code: 0x800A03EC) when using XLSWRITE in MATLAB?

0 0
原创粉丝点击