XlsReadWriteII 升级后的需要EXCEL版本的声明
我们使用XlsReadWriteII,由4升级到5、6后,由于原代码仅作部分适应性修改。但往往忽约EXCEL版本的说明,造成客户的使用上的困忽。
事因:近日几位客户反映,软件生成的EXCEL表,手机不能打开。我在手机和电脑上,都能打开。经过反复查看,发现问题所在。
1、函数生成的EXCEL,默认97-2003版本,文件名使用.xls。代码中,没有加入版本申明代码,这样,造成文件名与内核不一致,手机不能正常打开。
2、根本原因是.XlsReadWriteII升级后,原代码中没有写上EXCEL版本的设置代码。而xlsReadWriteII默认2007版,虽然,软件要写的是97-2003版(文件名后缀.xls),但是,创建的是一个2007版内核,2003版文件名的EXCEL。
3、为何本人的手机,能打开。可以是强制打开后,可以EXCEL软件,也能强制打开了。造成出错,一时末被发现。
加入代码:
XLS.Version := xvExcel97; // 版本
问题解决。
最终解决办法:
// 写文件
if XLS.Version=xvExcel2007
then FileName:=changefileext(FileName,'.xlsx')
else FileName:=changefileext(FileName,'.xls');
XLS.Filename := FileName;
XLS.Write;