上文所述的方法,虽然速度很快。但是有一个致命的缺点,文件无法再次导入。报错为:外部表不是预期的格式
如何解决此问题?如上文所述,把原来导出的文件用excel打开另存为就OK了
可是我们不能要求客户都这么做。
在这里提出一种解决方法,希望和大家探讨。
SQL2000不是能导出EXCEL么?而且是标准的excel文件。可以用SQL生成标准的excel文件,然后推给客户端下载啊。
有了这个想法,接着就试试,结果成功了。
步骤如下:
SQL生成excel的存储过程,来自zjcxc邹健邹老大,tks:
然后生成excel,推向客户端。
原来的代码:
Response.WriteFile(name);
Response.End();
System.IO.File.Delete(Server.MapPath(name));
后来在csdn发帖,终于解决。先把excel变成二进制读入内存,删除原excel,推向客户端。
c#端代码:
Response.BinaryWrite(byteArrManuscriptContent);
Response.End();
}
终于完成。正常。
但是发布到iis会报错:
报错已经给出解决方法,添加文件夹的权限,对于本例,把F:\mycode\ExcelOut\Excel 文件夹加上aspnet帐户的完全控制权限。
OK,全部正常。
完整代码,包括前文的response输出:
后台代码:
后台:
Response.BinaryWrite(byteArrManuscriptContent);
Response.End();
}
}