Asp.Net读取excel文件的时候 出错提示:外部表不是预期的格式
在读取我程序导出的Excel文件数据时,出现错误“外部表不是预期的格式”;
结果网上搜索时发现解决办法:
=======================================
用记事本打开你的Excel文件,看看显示是否为乱码。
若是html代码,则表示你的excel文件格式不是标准的excel格式,才会提示“外部表不是预期的格式”的错误;
若是乱码,我这边测试是不会提示这个错误的,可以成功导入。
其实出现这个错误的原因是,你的Excel是从程序中导出的,并且是使用
Response的方式直接把html代码输出到Excel中的
其实是可以解决的:
1/ 导出的时候使用Excel操作Api来导出就是标准格式
2/ 其次是将导出的Excel文件再次另存为新的Excel文件
=======================================
但是,我发现我所导出的Excel是采用COM组件形式生成的标准的Excel文件。
而且用记事本打开时,也是乱码格式。
于是经过尝试,我将原有的Excel文件另存为.xlsx扩展名,因为我本机只有Office2007,并没有2003技巧以前的版本。
再次尝试,成功!
从这点分析是不是我导出的Excel文件扩展名是不是定义错了,于是修改程序。
判断运行环境是哪个版本的Excel,并重新导出Excel,然后导入,成功!
其中,判断本机的Excel版本的程序代码为:
Excel.Application m_xlApp = new Excel.Application(); //运行环境中的Excel版本 string version = m_xlApp.Version; string fileExtension = ".xls"; if (version == "12.0") { fileExtension = ".xlsx"; }