Escrevendo uma grande matriz 2D para o Excel

Eu estou olhando para escrever uma grande matriz 2d para uma planilha do Excel usando c #. Se a matriz é 500 x 500, o código que eu usaria para escrever isso é da seguinte maneira:

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

Eu recebo uma exceção nesta linha:

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

Como qualquer pessoa que usou C # e Excel via COM pode testemunhar, a mensagem de erro recebida é praticamente inútil. Eu acho que o problema é que a estrutura de dados subjacente usada para a planilha não é de tamanho suficiente para indexar a célula 500.500 quando eu criar a planilha pela primeira vez.

Alguém sabe como alcançar o resultado desejado? Espero que haja uma maneira simples de redimensionar a estrutura de dados subjacente antes de criar o intervalo.

Obrigado.

Editar: mensagem de erro é:

{"Exception from HRESULT: 0x800A03EC"}

Com e excel código de erro de -2146827284.

Atualização: O link fornecido nos comentários abaixo fez alusão a um problema com a abertura da planilha do Excel no modo de compatibilidade. Este parece ser o problema. Se eu salvar o documento no formato .xlsx ou .xlsm antes de executar meu código, isso parece funcionar. Meu problema é que não posso esperar que meus usuários façam isso todas as vezes. Existe uma maneira programática de conseguir isso? Seria simplesmente um caso de abrir o arquivo, verificar a extensão e salvá-lo no novo formato, se necessário?

questionAnswers(2)

yourAnswerToTheQuestion