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
Arbeite mit absoluten und nicht mit relativen Pfaden, dann wirds funktionieren.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
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