有没有更好的方法使用C#或SQL Server将批量数据导出到Excel?

时间:2016-04-15 12:38:26

标签: c# asp.net sql-server excel

我的应用程序中有一个搜索页面,可以根据两个日期搜索数据。用户还可以将数据导出到excel中。我使用普通的asp.net网格视图来显示数据。在导出到excel时,我使用OPENROWSET方法从sqlserver将数据插入到excel中(这有时抛出链接服务器null错误,在各个技术站点中给出了所有建议,但有时仍会出错)。

当用户将一年的数据导出到excel时,即使查询更快地返回数据,页面也需要至少20分钟导出,使用openrowset写入excel会花费更多时间。 1年的数据大约是2百万条记录,之前我使用c#代码将数据写入excel,这也花费了更多的时间。一年数据的Excel文件大小超过200 MB。

批量数据excel导出是否有更好的方法?

2 个答案:

答案 0 :(得分:0)

SSIS适合导出大量数据。

答案 1 :(得分:0)

让SQL Server为您创建一个SSIS包,SSIS包将比代码快得多。为此:

1. In SQL Server Management Studio Right Click on the target database and click on Tasks in the pop-up  menu 
2) Select Import Data
3) On Data Source select Microsoft Excel and browse to where the excel spreadsheet will be.

继续选择并确保保存生成的包。

该包可以作为SQL Server作业运行,也可以使用dtexec(SQL Server util)命令从命令行运行。

SSIS包将非常快速地处理2000000行(在我的机器上它每秒读取10000行 - 结果会有所不同)。