Hi ralf_p
entlich ist die Lösung gefunden !!!
Erstmal Vielen Dank für deine Unterstützung....
Hier eine Beschreibung was den Fehler verursacht hatte :
Das grundlegende Problem betrifft hierbei die Datentypen und das Verständnis, wie der Computer den Unterschied zwischen Zahlentypen und Zeichenfolgen erkennt.
Der tatsächliche Wert, der für Ihr DataGridView bereitgestellt wird, ist (hoffentlich) eine Dezimalzahl (es könnte auch eine Double-/Float-/usw.-Zahl sein, aber bei der Arbeit mit Geld ist nur die Dezimalzahl korrekt ).
Wenn Sie einen gut formatierten Wert wie auf dem Bildschirm sehen 133,60 €, sehen Sie eine Zeichenfolge und keine Dezimalzahl. Sie erhalten diese Zeichenfolge, weil die DataGridView so konfiguriert ist, dass diese Spalte als Währung behandelt und entsprechend formatiert wird. Der tatsächliche Wert in der Zelle ist jedoch immer noch eine Binärzahl ohne jegliches für Menschen lesbares Format.
MS Word kennt Ihre DataGridView-Formatierung jedoch nicht. Es sieht nur den Wert. Es weiß nicht, dass der Wert Geld darstellt, und führt daher nur eine einfache Konvertierung in eine Zeichenfolge durch, anstatt einer gut formatierten Konvertierung in eine Zeichenfolge, die eine Währung darstellt.
Um dies zu beheben, sollten Sie im Voraus überlegen, welche Art von Zeichenfolge Sie für jede Spalte erstellen müssen. Dann können Sie entweder .ToString()den Originalwert mit der entsprechenden Formatzeichenfolge aufrufen. Oder Sie können beim Exportieren für Word die FormattedValue Eigenschaft in der Rasterzelle anstelle der Basiseigenschaft betrachten Value.
Habe nun in der fogenden Code Zeile dies geändert:
objDoc.Tables(1).Cell(r + 1, c + 1).Range.Text = Datagridview2(c, r).Value.ToString <------ Falsch
objDoc.Tables(1).Cell(r + 1, c + 1).Range.Text = Datagridview2(c, r).FormattedValue <------- Die Lösung !!
In Word wird jetzt alles Richtig mit € und 2 Decimal stellen angezeigt.
Danke Dir auch nochmal...
Gruß
Andi
|