Fehler beim Öffnen eines Workbooks

14/08/2008 - 22:51 von Wojtek Kusch | Report spam
Hallo!
Habe schon wieder ein Problem mit Excel.. oh je..
Ich versuche ein Workbbok mittels C# zu öffnen:

Workbook workBook = excelApp.Workbooks.Open(fileName,
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);


Bei "Excel 2003" funktioniert es einwandfrei, bei "Excel 2000" bekomme
ich folgende Fehlermeldung:

"Attempt to read or write protected memory. This is often an indication
that other memory has been corrupted."

Im Web finde ich nicht allzu viel darüber, vorallem keine Lösung. Eine
der Meinungen war, dass es an dem Paraemter "Password" hàngt, es hàngt
mit string und inmutable zusammen (oder àhnlich).
Danke für die Hilfe!
Grüße,
Wojtek
 

Lesen sie die antworten

#1 Frank Dzaebel
15/08/2008 - 08:14 | Warnen spam
Hallo Wojtek,

Ich versuche ein Workbbok mittels C# zu öffnen:
Bei "Excel 2003" funktioniert es einwandfrei, bei "Excel 2000" bekomme ich
folgende Fehlermeldung [...]



Wenn Du unterschiedliche Office-Versionen in
einem Code implementieren willst, ist es ggf. sinnvoll,
wenn Du in Deinem Projekt gegen die niedrigste zu
unterstützende Office-Version codierst.
Das ist in Deinem Fall dann Office 2000.
Um damit zu entwickeln ist es vorteilhaft, die
Office 2000 IA's (Microsoft Excel 9.0 Object Library) ins
Projekt mit eingebunden zu haben. Diese sind z.B.
erstellbar durch einen Rechner, auf dem Office 2000
installiert ist und die genannte Object Library über
Verweise ins Projekt einbindest und dann neu erstellst.
Der Entwicklungsrechner "kann" dann ggf.
trotzdem Office 2003 oder höher haben.

[INFO: Develop Microsoft Office solutions with Visual Studio .NET]
http://support.microsoft.com/defaul...Q311452#13

http://www.google.de/search?hl=de&a...C%23+Excel

Bei bestimmten Methoden ist die Interop-Signatur zwischen
den verschiedenen Office-Versionen unterschiedlich.
Das ist zum Beispiel bei den Open-Methoden hàufig der Fall.
Es kommen bei neueren Versionen normal immer nur
Parameter hinzu, sodass für diese *wenigen* Methoden
(wie etwa das "Open" des WorkBooks, wo die Signatur der
Methode weniger Parameter in Office 2000 hat)
z.B. LateBind gearbeitet werden kann, um alle Office-Versionen
zu unterstützen:

[Spàte Bindung bei C# am Beispiel Word]
http://dzaebel.net/LatebindWord.htm

(hier sind als Beispiel gleich mehrere Methoden
latebind implementiert, was nicht notwendig ist).


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen