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";
}
posted @ 2012-07-02 14:33  Devil_Zhang  阅读(3882)  评论(1编辑  收藏  举报