前文:数据库导出excel<一>
上文所述的方法,虽然速度很快。但是有一个致命的缺点,文件无法再次导入。报错为:外部表不是预期的格式
如何解决此问题?如上文所述,把原来导出的文件用excel打开另存为就OK了数据库导出excel (二)
可是我们不能要求客户都这么做。
在这里提出一种解决方法,希望和大家探讨。
SQL2000不是能导出EXCEL么?而且是标准的excel文件。可以用SQL生成标准的excel文件,然后推给客户端下载啊。
有了这个想法,接着就试试,结果成功了。
步骤如下:
SQL生成excel的存储过程,来自zjcxc邹健邹老大,tks:



然后生成excel,推向客户端。
原来的代码:

;
        Response.WriteFile(name);       
        Response.End();
        System.IO.File.Delete(Server.MapPath(name)); 
问题出在推客户端这里,response流执行时,无法删除文件。难道咱们就永远让这这些文件存在服务器上?OMG。
后来在csdn发帖,终于解决。先把excel变成二进制读入内存,删除原excel,推向客户端。
c#端代码:


);
        Response.BinaryWrite(byteArrManuscriptContent);
        Response.End();
    }

终于完成。正常。
但是发布到iis会报错:
数据库导出excel (二)

报错已经给出解决方法,添加文件夹的权限,对于本例,把F:\mycode\ExcelOut\Excel 文件夹加上aspnet帐户的完全控制权限。
OK,全部正常。
数据库导出excel (二)


完整代码,包括前文的response输出:
后台代码:
>

后台:
);
        Response.BinaryWrite(byteArrManuscriptContent);
        Response.End();
    }
}

相关文章:

  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
  • 2021-08-05
  • 2021-11-21
  • 2022-02-12
  • 2021-10-13
  • 2022-02-11
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2021-04-21
  • 2021-06-25
相关资源
相似解决方案