Пожалуйста, посмотрите пример ниже, этот код работает просто отлично, если rowLimit меньше 65536, я использую библиотеку объектов Micorsoft Excel 12.0, v1.6, кто-нибудь знает об обходном пути или это было исправлено в загрузке?
using Excel = Microsoft.Office.Interop.Excel;
long rowLimit = 65537;
object[,] items = new object[rowLimit, 5];
for( long rowIndex = 0; rowIndex < rowLimit; ++rowIndex )
{
for( long columnIndex = 0; columnIndex < 5; ++columnIndex )
{
items[rowIndex, columnIndex] = String.Format( "{0}-{1}", rowIndex, columnIndex );
}
}
var xlApp = new Excel.Application();
var xlWorkBook = xlApp.Workbooks.Add( Excel.XlWBATemplate.xlWBATWorksheet );
var xlWorkSheet = xlWorkBook.Worksheets.Add();
xlWorkSheet.Name = "Test Sheet";
Excel.Range topLeft = (Excel.Range)xlWorkSheet.Cells[1,1];
Excel.Range bottomRight = (Excel.Range)xlWorkSheet.Cells[rowLimit, 5]; // THIS LINE ALWAYS EXCEPTIONS IF rowLimit > 65536
Excel.Range range = xlWorkSheet.Range[topLeft, bottomRight];
range.Value = items;