öffnen ExcelTabelle in WindowsApplication
-
Hallo,
ich versuche eine bestehende Excel-Datei (.xls) mit Interop in meinem Programm zu öffnen um dann einzelne Zellen zu verarbeiten. Der Code für das Öffnen ist mir relativ klar, nur wenn ich das Programm ausführe, erhalte ich einen Sicherheitsfehler (Dieses Assambly lässt keine Aufrufer zu, die nicht vertrauenswürdig sind). Weiß jemand, was ich machen muss damit dieser Fehler nicht mehr auftaucht?
Vielen Dank
Jutta
-
Hallo JuttaD !
Leider kann ich mit Deiner Fehlermeldung auch nicht viel anfangen. Ich habe mal Deine Situation nachprogrammiert und ein einfaches Excelsheet erstellt und abgespeichert. In diesem Sheet sind nur ein paar Zahlen zum Aufsummieren vorhanden. Mit folgendem Code lese ich die Daten aus diesem Excelsheet und berechne eine Zwischensumme, die ich mit Hilfe eines Labels auf der WinForm ausgebe :
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook wbook = app.Workbooks.Open(@"C:\Dokumente und Einstellungen\...\Jahresumsatz.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Microsoft.Office.Interop.Excel.Worksheet wsheet = (Microsoft.Office.Interop.Excel.Worksheet)wbook.Worksheets.get_Item(1); System.Array val; Microsoft.Office.Interop.Excel.Range rng = wsheet.get_Range("B1", "B3".ToString()); val = (System.Array)rng.Value2; int iErg = 0; foreach (object obj in val) { iErg += Convert.ToInt32(obj); } label1.Text = iErg.ToString();
Vergleich mal mein Beispiel mit Deinem Quellcode, vielleicht ist ja irgendwo ein logischer Fehler versteckt. Die Workbooks.Open()-Methode hat viele Parameter bezüglich Zugriffrechte u.s.w., dort könnte vielleicht Dein Problem liegen.
Unter folgendem MSDN-Link findest Du Informationen über das Excel Application Object :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wrcore/html/wrgrfexcelapplicationobject.aspWenn Du nicht weiterkommen solltest, dann poste einfach nochmal !
Gruß Ernst
Nachtrag : Für das obige Beispiel referenziere ich die .NET-Komponente Microsoft.Office.Interop.Excel !
-
Hallo Ernst,
danke für Deine Antwort. Der Tipp mit den Zugriffsrechten hat mich auf die richtige Spur gebracht, wenn es auch lange gedauert hat :p
Ich habe meine Programmordner im Dateiexplorer gemaped, so dass ich einen einfachreren Zugriff habe. Obwiohl ich auf das logische Laufwerk alle Zugriffsrechte habe, verschluckt sich das System und schmeißt den Sicherheitsfehler raus. Wenn ich meine Bequemlichkeit ablege und über den realen Pfad das Programm in Visual Studio öffne und dann ausführe klappt alles einwandfrei.
Gruß
Jutta