不能将大量的数据插入到工作表中

我无法将大量的数据插入到工作表中。 错误是“内存不足以继续执行程序”。 我正在使用Excel 2007.我的数组有393210行和29列。 首先我试图插入它使用一个操作(范围=(对象)数组)。 之后,我将arrays分成几个部分。 我的代码:

// Fill content const int row_limit = 283500; int row_start = 0; int row_end; int number_of_iterations = (int)Math.Ceiling((double)dtable.Rows.Count / (double)row_limit); for (int idx = 0; idx < number_of_iterations; idx++) { if (idx == number_of_iterations - 1) row_end = dtable.Rows.Count - 1; else row_end = row_start + row_limit - 1; object[,] arr = new object[row_end - row_start + 1, dtable.Columns.Count]; int arr_row = 0; for (int r = row_start; r <= row_end; r++) { for (int c = 0; c < dtable.Columns.Count; c++) { arr[arr_row, c] = dtable.Rows[r][c]; } arr_row++; } ((Excel.Range)ex_sheet.get_Range((Excel.Range)ex_sheet.Cells[row_start + 2, 1], (Excel.Range)ex_sheet.Cells[row_end + 2, dtable.Columns.Count])).Value = arr; row_start = row_end + 1; } 

常量row_limit设置在一个操作中插入的最大行数。 如果数字less于283000,一切都好。 但是,如果它超过283500我得到的错误。

正如我在这里发现的“工作表大小1,048,576行16,384列”。 这个错误的原因是什么?

Excel 2007仅限于大约2GB的内存(这是一个32位程序),但实际上,由于内存碎片问题,它在达到此限制之前通常会耗尽内存。
内部Excel使用稀疏数组scheme来跟踪在工作表上使用的单元格,因此虽然1,048,576行和16,384列的发布限制是正确的,但不可能在不超过2GB限制的情况下使用所有这些单元格(您将需要超过1000 GB)。
Excel 2010和2013的64位版本具有更大的内存限制。
请参阅http://www.decisionmodels.com/memlimitsc.htm有关Excel版本的内存限制的一些详细信息&#x3002;