Forums Neueste Beiträge
 

Interop.Excel 11 / Interop.Excel 12

11/10/2007 - 18:44 von Klaus Eckert | Report spam
Hallo,

Visual Studio 2005 C#, Programm mit Einlesen einer Excel-Datei.
Rechner 1: Office 2007
Rechner 2: Office 2003

Ein Programm, erzeugt auf Rechner2 (mit Verweis auf Interop.Excel 11), làuft
auf Rechner 1
Ein Programm, erzeugt auf Rechner1 (mit Verweis auf Interop.Excel 12), làuft
NICHT auf Rechner 2

Gibt es eine Möglichkeit, auf Rechner 1 ein Programm zu erzeugen (Verweis
auf Interop.Excel 11),
ohne dass Excel 2003 zusàtzlich installiert wird?

Mit besten Grüßen
Klaus
 

Lesen sie die antworten

#1 Frank Dzaebel
11/10/2007 - 21:06 | Warnen spam
Hallo Klaus,

Visual Studio 2005 C#, Programm mit Einlesen einer Excel-Datei.
Rechner 1: Office 2007, Rechner 2: Office 2003



Von Office 2007 aus portabel nach unten
zu entwickeln ist selten sinnvoll. Sondern
man codiert gegen die *tiefste* PIA/IA - hier also 2003,
also Rechner 2.
Bei Spezialfàllen, wo man Office-2007-Funktionalitàt
einsetzen will, oder schlicht die Parameterzahl
angewachsen ist, kann man z.B. Wrapper einsetzen,
die über params und OptionalParamsBinding arbeiten,
Etwa:

private object Call(object target, string methodName,
params object[] parameters)
{
return target.GetType().InvokeMember(methodName,
BindingFlags.InvokeMethod | BindingFlags.
OptionalParamBinding, null, target, parameters);
}

Der 2003 Code ist dann bei korrekter Programmierung
auch unter 2007 lauffàhig. Ich weiss - meistens ist auf
dem 2007 das bevorzugte Office bzw. OS und man
möchte im Prinzip lieber da arbeiten, aber um die PIAs
2003 zu installieren bràuchtest Du eine Office 2003
Installation.


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

Ähnliche fragen