Schreiben eines großen 2D-Arrays nach Excel

Ich möchte mit C # ein großes 2D-Array in ein Excel-Arbeitsblatt schreiben. Wenn das Array 500 x 500 ist, lautet der Code, den ich zum Schreiben verwenden würde, wie folgt:

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

Ich bekomme eine Ausnahme in dieser Zeile:

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

Wie jeder, der C # und Excel über COM verwendet hat, bezeugen kann, ist die erhaltene Fehlermeldung so ziemlich nutzlos. Ich denke, dass das Problem darin besteht, dass die zugrunde liegende Datenstruktur, die für das Arbeitsblatt verwendet wird, nicht ausreichend groß ist, um die Zelle 500.500 zu indizieren, wenn ich das Blatt zum ersten Mal erstelle.

Weiß jemand, wie man das gewünschte Ergebnis erzielt? Ich hoffe, dass es eine einfache Möglichkeit gibt, die Größe der zugrunde liegenden Datenstruktur zu ändern, bevor der Bereich erstellt wird.

Vielen Dank.

Edit: Fehlermeldung ist:

{"Exception from HRESULT: 0x800A03EC"}

Mit und Excel-Fehlercode -2146827284.

Update: Der in den Kommentaren unten angegebene Link weist auf ein Problem beim Öffnen der Excel-Tabelle im Kompatibilitätsmodus hin. Dies scheint das Problem zu sein. Wenn ich das Dokument im XLSX- oder XLSM-Format speichere, bevor ich meinen Code ausführe, scheint dies zu funktionieren. Mein Problem ist, dass ich nicht erwarten kann, dass meine Benutzer dies jedes Mal tun. Gibt es eine programmatische Möglichkeit, dies zu erreichen? Wäre es einfach ein Fall, die Datei zu öffnen, die Erweiterung zu überprüfen und sie dann im neuen Format zu speichern, falls erforderlich?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage