Fehler beim Öffnen einer Excel-Arbeitsmappe mit C # -Code

8

Ich versuche, eine Excel-Arbeitsmappe zu öffnen und versuche, ein Arbeitsblatt darin zu bekommen. Excapp.workbooks.Open Zeile wirft eine Ausnahme als

  

System.Runtime.InteropServices.COMException von HRESULT: 0x800A03EC bei Microsoft.Office.Interop.Excel.Workbooks.Open

Hier ist mein Code:

%Vor%

StrWbPath ist mein Excel-Speicherort. Ich verweise auf Excel 2007 und fügte Microsoft.office.interop.excel der Version 12.0.0.0 hinzu.

    
Amrita 09.11.2009, 09:21
quelle

3 Antworten

5

(Sorry für die Beantwortung dieser alten Frage, aber es ist google Ergebnis # 1 für dieses Problem und die richtige Antwort fehlt).

Der Fehler tritt auf, weil Excel denkt, dass die Arbeitsmappe beschädigt wurde. Beim Öffnen der Excel-Datei sagt der letzte Parameter Excel, wie er mit dieser Situation umgehen soll. Übergeben Sie Microsoft.Office.Interop.Excel.XlCorruptLoad.xlExtractData , um sie anzuweisen, die Daten abzurufen (Dies öffnet ein Popup, das dem Benutzer mitteilt, dass Excel versucht hat, die Daten zu extrahieren, wenn die Datei beschädigt ist).

Ich habe jedoch festgestellt, dass dieses Problem auch dann auftreten kann, wenn die Arbeitsmappe, die Sie öffnen möchten, eine andere Ländereinstellung hat als Ihre Excel-Datei (wurde auf einem Computer mit einer anderen Spracheinstellung gespeichert) ODER wenn Ihr System nicht über die Ländereinstellung en-us verfügt .

Obwohl das extrem dumm ist, ist es leicht zu überwinden. Für mich bestand die Lösung darin, das aktuelle Gebietsschema vor dem Öffnen der Datei auf en-us zu setzen:

%Vor%

Dank geht an diese Seite

    
hotfire42 03.01.2015 14:57
quelle
0

Was passiert, wenn Sie System.Reflection.Missing.Value anstelle von Type.Missing ausprobieren?

Grüße,

M.

    
Michel van Engelen 09.11.2009 09:38
quelle
0

Welche Klasse benutzen Sie?

%Vor%

wenn dies dann versucht, es in

zu ändern %Vor%     
Pragnesh Patel 09.11.2009 09:49
quelle

Tags und Links