Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Excel C# Gelöst: Value Der double-Typ kann nicht implizit in string konvertiert werden.

25.10.2018 (👁9785)


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)}