excel导出内存异常

时间:2009-12-10 16:32:18

标签: asp.net excel exception memory export

我需要从ado.net datatable(我通过db查询获得)中导出大量数据到excel。

我尝试了以下方法:1。使用工作簿/工作表@服务器端创建excel对象...并使用内存流将整个文档写入客户端。

但是这给了我“内存异常”。 bcoz我的记忆流是如此巨大。

所以我用一种新的方式替换了它 - 如下:

将数据表中的每一行写为逗号分隔字符串到客户端。所以,当我们得到每一行时...我们可以写到客户端..没有使用内存。

但通过这种方式,我们可以写入csv文件......不要超越......

有人知道如何处理这种情况。 我可以使用silverlight从服务器逐行获取数据,将其传递给客户端...在客户端构建excel。?

2 个答案:

答案 0 :(得分:0)

您应该在服务器上创建它,然后以块的形式将其复制到客户端。

有关示例,请参阅this answer

答案 1 :(得分:0)

如果这适用于XL 2007,则工作簿基本上采用OPEN XML文件格式。

如果您可以格式化数据表中的数据以符合OPEN XML,则可以保存文件,然后只下载整个文件。

http://msdn.microsoft.com/en-us/library/aa338205.aspx

上阅读OPEN XML