在VB中将大量数据从SQL Server导出到Excel

我有一些适用于较小数据集的代码。 我使用了大量的数据集(800k行,25列),但是出现了“内存不足”的错误。 我试图找出一种方法来改变这种大规模出口逐列,或者可能拆分行集,而不是一次整个事情。

显然它不能处理那么多的数据。 我无法弄清楚如何分离出一些。 有任何想法吗? 谢谢!

For Each dt As System.Data.DataTable In ds.Tables ' Copy the DataTable to an object array Dim rawData(dt.Rows.Count, dt.Columns.Count - 1) As Object ' Copy the column names to the first row of the object array For col = 0 To dt.Columns.Count - 1 rawData(0, col) = dt.Columns(col).ColumnName Next ' Copy the values to the object array For col = 0 To dt.Columns.Count - 1 For row = 0 To dt.Rows.Count - 1 rawData(row + 1, col) = dt.Rows(row).ItemArray(col) Next Next ' Calculate the final column letter Dim finalColLetter As String = String.Empty Dim colCharset As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Dim colCharsetLen As Integer = colCharset.Length If dt.Columns.Count > colCharsetLen Then finalColLetter = colCharset.Substring( _ (dt.Columns.Count - 1) \ colCharsetLen - 1, 1) End If finalColLetter += colCharset.Substring( _ (dt.Columns.Count - 1) Mod colCharsetLen, 1) ' Fast data export to Excel Dim excelRange As String = String.Format("A1:{0}{1}", finalColLetter, dt.Rows.Count + 1) excelSheet.Range(excelRange, Type.Missing).Value2 = rawData excelSheet = Nothing Next 

是否有其他代码来操纵Excel电子表格? 如果不是这样,将其写入CSV格式的平面文本文件可能会更快。 Excel将打开CSV并将其呈现为正常的电子表格。