Laden...

Vorhandene Excel-Datei kann nicht gefunden werden.

Erstellt von Buzz Tyca vor 8 Jahren Letzter Beitrag vor 8 Jahren 6.719 Views
B
Buzz Tyca Themenstarter:in
50 Beiträge seit 2015
vor 8 Jahren
Vorhandene Excel-Datei kann nicht gefunden werden.

Hallo zusammen,
zur Zeit arbeite ich mich ein wie ich Excel-Dateien mit C# öffnen kann. Nun stehe ich vor einem blöden Problem.
Ich will eine Excel-Datei öffnen und überprüfe vorher, ob sie existiert. (sie liegt im gleichen Ordner wie das Projekt)
Danach versuche ich sie zu öffnen, bekomme aber einen Fehler, dass die Datei nicht vorhanden sei.

Mit folgendem Code spreche ich die Datei an:


if (File.Exists("Testmappe.xlsx"))
            {
                MessageBox.Show("Datei gefunden!!!");
                Excel.Application excelApp = new Excel.Application();
                excelApp.Visible = true;
                Excel.Workbook newWorkbook = excelApp.Workbooks.Add();
                string workbookPath = "Testmappe.xlsx";
                Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(
                    workbookPath,                       //string Filename
                    0,                                  //object UpdateLinks
                    false,                               //object ReadOnly
                    5,                                  //object Format
                    "",                                 //object Password
                    "",                                 //object WriteResPassword
                    false,                              //object ReadOnlyRecommend
                    Excel.XlPlatform.xlWindows,         //object Origin
                    "",                                 //object Delimiter
                    true,                               //object Editable
                    false,                              //object Notify
                    0,                                  //object Converter
                    true,                               //object AddToMru
                    false,                              //object Local
                    false);                             //object CorruptLoad
                Excel.Sheets excelSheets = excelWorkbook.Worksheets;
                string currentSheet = "Sheet1";
                Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
                Excel.Range excelCell =
                    (Excel.Range)excelWorksheet.get_Range("A1", "A1");
              }

bekomme aber bereits in der excelApp.Workbooks.Open()folgende Fehlermeldung:

Fehlermeldung:
Ein Ausnahmefehler des Typs "System.Runtime.InteropServices.COMException" ist in excel_open.exe aufgetreten.

Zusätzliche Informationen: Wir konnten 'Testmappe.xlsx' nicht finden. Wurde das Objekt vielleicht verschoben, umbenannt oder gelöscht?

Da ich aber zu Beginn die Existenz der Datei überprüfe, kann ich mir den Fehler nicht erklären.
Kann mir jemand einen Tipp geben, der mich da weiter bringt?

Danke euch

LG Buzz

16.840 Beiträge seit 2008
vor 8 Jahren

Arbeite mit absoluten und nicht mit relativen Pfaden, dann wirds funktionieren.

2.207 Beiträge seit 2011
vor 8 Jahren

Hallo Buzz Tyca,

die Prozesse haben eine unterschiedliche Working Directory. Hol dir den Pfad beim Öffnen der Excel-File mit

workbookPath = Path.GetFullPath(workbookPath);

Damit sollte es gehen.

Gruss

Coffeebean

B
Buzz Tyca Themenstarter:in
50 Beiträge seit 2015
vor 8 Jahren

Danke, das behebt den Fehler.
Ich bin aus dem Webdesign so gewohnt mit relativen Pfaden zu arbeiten, dass ich gar nicht auf die Idee gekommen bin den Absoluten anzugeben.

LG Buzz