Написание большого 2d массива в Excel

Я хочу записать большой двумерный массив на лист Excel, используя C #. Если массив 500 х 500, код, который я использовал бы для написания этого, выглядит следующим образом:

 var startCell = Worksheet.Cells[1, 1];
 var endCell = Worksheet.Cells[500, 500];
 var writeRange = (Excel.Range)Worksheet.Cells[startCell, endCell;
 writeRange.Value = myArray;

Я получаю исключение в этой строке:

var endCell = Worksheet.Cells[500, 500];

Любой, кто использовал C # и Excel через COM, может свидетельствовать, полученное сообщение об ошибке в значительной степени бесполезно. Я думаю, что проблема в том, что базовая структура данных, используемая для рабочего листа, не имеет достаточного размера для индексации ячейки 500 500 при первом создании листа.

Кто-нибудь знает, как добиться желаемого результата? Я надеюсь, что есть простой способ изменить размер базовой структуры данных перед созданием диапазона.

Благодарю.

Изменить: Сообщение об ошибке:

{"Exception from HRESULT: 0x800A03EC"}

С и Excel код ошибки -2146827284.

Обновление: ссылка, приведенная в комментариях ниже, ссылается на проблему с открытием листа Excel в режиме совместимости. Это кажется проблемой. Если я сохраню документ в формате .xlsx или .xlsm до запуска моего кода, это, похоже, сработает. Моя проблема в том, что я не могу ожидать, что мои пользователи будут делать это каждый раз. Есть ли программный способ достижения этого? Будет ли это просто случай открытия файла, проверки расширения и последующего сохранения его в новом формате, если это необходимо?

Ответы на вопрос(2)

Ваш ответ на вопрос