Excel C# Gelöst: Value Der
double-Typ kann nicht implizit in string konvertiert werden.
Betrifft:
Lesen von Excel-Zellen mit C# auf Cell.Value, Cell.Value2
und FormulaLocal
Problem:
beim Lesen von Excel-Zellen steht Value2 nicht zur Verfügung
und FormulaLocal erzeugt einen Fehler
Fehler Code
und Meldung
1) Cell.Value
Beim Lesen einer Excel-Zelle in C# durch .Value oder .Value2
wird ein Fehler erzeugt
Lesen mit Excel.Cell.Value (->Fehler)
var cell = ws.Cells[iRow + 1, iColumn] as Excel.Range;
String sValue = cell.Value;
|
Komplette Fehlermeldung:
{System.Reflection.TargetInvocationException:
Ein Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Altes Format oder ungültige
Typbibliothek. (Ausnahme
von HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
|
2) Cell.Value2
Lesen mit Excel.Cell.Value2 (->Fehler)
var cell = ws.Cells[iRow + 1, iColumn] as Excel.Range;
String sValue = cell.Value2;
|
Oder bei Verwenden von .value2
error CS1061: 'object' does not contain a
definition for 'Value2' and no extension method 'Value2' accepting a first
argument of type 'object' could be found (are you missing a using directive
or an assembly reference?)
|
Lösung:
Man muss mit C# den Wert aus einer Excel Zelle mit Cell.Value2.ToString()
auslesen.
Leider wird hier Intellisense nicht unterstützt.
Microsoft.Office.Interop.Excel.Range cell = usedRange.Cells[iRow, iColumn] as Range;
String sValue = cell.Value2.ToString();
|
Zur Laufzeit wird auch der Fehlerwert angezeigt:
Fehlermeldung:
Der double-Typ kann nicht implizit
in string konvertiert werden.
Auswertung
einer Excel Cell worksheet.Cells[1,1]
Zur Laufzeit, Programmatically Value
|
Name
|
Value
|
Type
|
◢
|
ws.Cells[1,1]
|
{System.__ComObject}
|
object {System.__ComObject}
|
Debug Watch1
Debug Variablen zur Laufzeit
|
Name
|
Value
|
◢
|
Dynamic View
|
Expanding
the Dynamic View will get the dynamic members for the object
|
|
▶ DisplayFormat
|
{System.__ComObject}
|
|
▶ FormatConditions
|
{System.__ComObject}
|
|
Formula
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.Runtime.InteropServices.COMException:
Altes Format oder ungültige Typbibliothek. (Ausnahme von HRESULT: 0x80028018
(TYPE_E_INVDATAREAD)) --- Ende der internen Ausnahmestapelüberwachung --- bei
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture,
String[] namedParameters) bei System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags, Binder binder, Object target, Object[]
providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[]
namedParams) bei System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1
names)}
|
|
FormulaArray
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Altes Format oder ungültige
Typbibliothek. (Ausnahme von HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) --- Ende der
internen Ausnahmestapelüberwachung --- bei System.RuntimeType.InvokeDispMethod(String
name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[]
byrefModifiers, Int32 culture, String[] namedParameters) bei
System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags,
Binder binder, Object target, Object[] providedArgs, ParameterModifier[]
modifiers, CultureInfo culture, String[] namedParams) bei
System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1 names)}
|
|
FormulaHidden
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Altes Format oder ungültige
Typbibliothek. (Ausnahme von HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) --- Ende der
internen Ausnahmestapelüberwachung --- bei
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture,
String[] namedParameters) bei System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags, Binder binder, Object target, Object[]
providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[]
namedParams) bei System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1
names)}
|
|
FormulaLabel
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Ausnahme von HRESULT: 0x800A03EC
--- Ende der internen Ausnahmestapelüberwachung --- bei System.RuntimeType.InvokeDispMethod(String
name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[]
byrefModifiers, Int32 culture, String[] namedParameters) bei
System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags,
Binder binder, Object target, Object[] providedArgs, ParameterModifier[]
modifiers, CultureInfo culture, String[] namedParams) bei
System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1 names)}
|
|
FormulaLocal
|
"SA-Nr."
|
|
FormulaR1C1
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Altes Format oder ungültige
Typbibliothek. (Ausnahme von HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) --- Ende der
internen Ausnahmestapelüberwachung --- bei
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture,
String[] namedParameters) bei System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags, Binder binder, Object target, Object[]
providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[]
namedParams) bei System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1 names)}
|
|
FormulaR1C1Local
|
"SA-Nr."
|
|
NumberFormat
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Altes Format oder ungültige
Typbibliothek. (Ausnahme von HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) --- Ende der
internen Ausnahmestapelüberwachung --- bei
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture,
String[] namedParameters) bei System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags, Binder binder, Object target, Object[]
providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
bei System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1 names)}
|
|
NumberFormatLocal
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.Runtime.InteropServices.COMException:
Altes Format oder ungültige Typbibliothek. (Ausnahme von HRESULT: 0x80028018
(TYPE_E_INVDATAREAD)) --- Ende der internen Ausnahmestapelüberwachung --- bei
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture,
String[] namedParameters) bei System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags, Binder binder, Object target, Object[]
providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[]
namedParams) bei System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1
names)}
|
|
PivotCell
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Ausnahme von HRESULT: 0x800A03EC
--- Ende der internen Ausnahmestapelüberwachung --- bei
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture,
String[] namedParameters) bei System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags, Binder binder, Object target, Object[]
providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[]
namedParams) bei System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1
names)}
|
|
Text
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Altes Format oder ungültige
Typbibliothek. (Ausnahme von HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) --- Ende der
internen Ausnahmestapelüberwachung --- bei
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture,
String[] namedParameters) bei System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags, Binder binder, Object target, Object[]
providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[]
namedParams) bei System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1
names)}
|
|
Value2
|
{System.Reflection.TargetInvocationException: Ein
Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.Runtime.InteropServices.COMException: Altes Format oder ungültige
Typbibliothek. (Ausnahme von HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) --- Ende der
internen Ausnahmestapelüberwachung --- bei
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture,
String[] namedParameters) bei System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags, Binder binder, Object target, Object[]
providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[]
namedParams) bei System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1 names)}
|
|