【发布时间】:2016-04-15 12:38:25
【问题描述】:
我的应用程序中有一个搜索页面,可以根据两个日期搜索数据。用户还可以将数据导出到excel中。我正在使用普通的 asp.net 网格视图来显示数据。在导出到 excel 时,我使用 OPENROWSET 方法从 sqlserver 将数据插入到 excel 中(这有时会引发链接服务器 null 错误,是否在各种技术站点中给出了所有建议,但有时仍会出现错误)。
当用户将一年的数据导出到 excel 中时,即使查询返回数据更快,页面也需要至少 20 分钟才能导出,使用 openrowset 写入 excel 需要更多时间。 1年的数据大约有200万条记录,之前我使用c#代码将数据写入excel也需要更多时间。一年数据的 excel 文件大小超过 200 mb。
批量数据excel导出有没有更好的方法?
【问题讨论】:
-
“200 万记录”? 2,000,000 行无法放入一张
Excel工作表中。 -
lakhs既不是英语单词也不是编程术语。在任何情况下,如果您必须导出这么多数据,就会出现问题 - 用户应该使用 数据库 来处理数据,而不是导出它们并自己处理它们。无论如何,在这种情况下,最好使用 PowerQuery 或 PowerPivot 连接创建 Excel 工作表并让用户自己检索数据 -
@AxelRichter 取决于 - 使用 PowerPivot Excel 可以加载更多用于处理、聚合等。它仍然无法显示更多行。
-
没有人会查看 200 万行,即使 Excel 可以全部显示。只需在视图中的服务器内部进行聚合,并在 Excel 内部设置数据源以访问它。
-
您需要考虑改为离线模型。用户提出请求。不等待。离线创建文件...通过电子邮件向用户发送指向可以下载的(压缩?)文件的链接。
标签: c# asp.net sql-server excel