Excel Interop - Datentyp von Spalte ermitteln

16/04/2010 - 20:14 von Klaus Mayer | Report spam
Hallo,

wie kann ich, wenn ich per Interop auf eine .xls zugreife, den Datentyp der
aktuellen Spalte ermitteln?
Danke für Eure Tipps und schöne Grüße
Klaus
 

Lesen sie die antworten

#1 Frank Dzaebel
16/04/2010 - 21:35 | Warnen spam
Hallo Klaus,

wie kann ich, wenn ich per Interop auf eine .xls zugreife, den Datentyp
der aktuellen Spalte ermitteln?



Eine Spalte ist ja quasi nur ein Range, der in seinen
Einzel-Zellen durchaus verschiedene Typen/Formate haben
kann. Ich schàtze, Du meinst "Range.Value.GetType()".
Also *eine* Zelle. Dazu ein Beispiel:

// using Excel = Microsoft.Office.Interop.Excel;
// using Microsoft.Office.Interop.Excel;
object n = Type.Missing;

private void Form1_Load(object sender, EventArgs e)
{
Excel.Application ex = new Excel.ApplicationClass();
ex.Visible = true;
string xlsQuelle = @"C:\...\ExcelWorkbook1.xlsx";

Workbook wb = ex.Workbooks.Open(xlsQuelle, n, n, n, n, n, n, n, n, n, n,
n, n, n, n);
Worksheet resultSheet = ex.ActiveSheet as Worksheet; // wb.Sheets[1] as
Worksheet;
Type typ = resultSheet.Range["B13"].Value.GetType();
MessageBox.Show(typ.FullName);
}

(In .NET 4.0 - ist Value bereits ein dynamic, sodass
GetType() bereits latebind aufgerufen wird - also jeweils
mehrere Office-Versionen gleichzeitig ohne PIA unterstützt
werden. Da sind dann natürlich auch nicht mehr die ganzen
"n, n, n, n ..." nötig).


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

Ähnliche fragen