我需要从ado.net datatable(我通过db查询获得)中导出大量数据到excel。
我尝试了以下方法:1。使用工作簿/工作表@服务器端创建excel对象...并使用内存流将整个文档写入客户端。
但是这给了我“内存异常”。 bcoz我的记忆流是如此巨大。
所以我用一种新的方式替换了它 - 如下:
将数据表中的每一行写为逗号分隔字符串到客户端。所以,当我们得到每一行时...我们可以写到客户端..没有使用内存。
但通过这种方式,我们可以写入csv文件......不要超越......
有人知道如何处理这种情况。 我可以使用silverlight从服务器逐行获取数据,将其传递给客户端...在客户端构建excel。?
答案 0 :(得分:0)
您应该在服务器上创建它,然后以块的形式将其复制到客户端。
有关示例,请参阅this answer。
答案 1 :(得分:0)
如果这适用于XL 2007,则工作簿基本上采用OPEN XML文件格式。
如果您可以格式化数据表中的数据以符合OPEN XML,则可以保存文件,然后只下载整个文件。
上阅读OPEN XML