如何将数据批量导出为ex​​cel

我有大约80至90列的表,它有大约800000到900000的数据,我需要导出数据400000左右使用asp.net和C#优秀。

我试图使用Open-XML DOM方法从数据集中导出数据,但是它会挂起系统,并在某个时刻出现内存超出限制错误。

可以使用任何其他方法将数据从sqlserver导出到Microsoft Excel 2007/2010。

你知道,Excel可以打开CSV(逗号分隔值)文件没有问题?

这是关于我能看到的最好和最薄的处理方式。

不要把它们放到数据集中。 使用阅读器并在阅读时将它们写出到响应stream中。 不需要在内存中实现它们。

DOM使得它很容易,因为一切都是强types的。 不幸的是,DOM方法需要将整个Open XML部分加载到内存中,这可能会导致内存不足exception。

您也可以使用类似于SAX的书写function,正如Brian Jones的以下文章中所解释的那样:

使用Open XML SDK编写大型Excel文件

TomTombuild议的方法将是最好的,当你处理这样庞大的数据..但万一如果你想导出的文件是一个xls或xlsx,那么你可以尝试考虑Excel文件作为一个数据源,并使用OleDb连接到数据源(在这种情况下是Excel文件)。 并使用插入查询将行插入到Excel文件中。

您也可以尝试使用Microsoft.Office.Interop.Excel写入Excel文件..但我仍然不知道多less时间,它会消耗如此庞大的数据处理..

您可以使用标准和最快的导出工具bcp.exe:
http://www.excel-sql-server.com/sql-server-export-to-excel-using-bcp-sqlcmd-csv.htm