Zum Inhalt springen

VB.NET Export Decimal Values to Excel


Empfohlene Beiträge

Geschrieben

tag zusammen,

#############

Visual Studio 2005

Mircosoft Framework 2.0

Excel 2007

#############

ich suche eine lösung um daten aus einem listview nach excel zu exportieren. dieses stellt auch kein größeres problem da. bis auf die kleinigkeit der dezimal zahlen die beim erstellen des excel files als string gewertet werden und nicht als number. somit ist es z.b nicht möglich eine summierung auf die spalte in excel zu tätigen.

beispiel code:


Friend Shared Sub Export()

        Dim vWorkBook As New DataDynamics.SpreadBuilder.Workbook

        Dim vSheet As DataDynamics.SpreadBuilder.DDSheet

        Dim vRow As Integer = 0


        vSheet = vWorkBook.Sheets.AddNew()



        With vSheet


            .Cell(vRow, 0).SetValue("DezimalZahl")

            .Cell(vRow, 0).FontBold = True


vRow += 1


  For Each Object1 In Object1List


 .Cell(vRow, 0).SetValue(Object1.GrossAmount.ToString)


     Next


...

..

.

.

hierbei erwartet die methode .SetValue einen String als input.

Object1.GrossAmount ist aber vom Typ Decimal und hat als beispiel den wert

450.45D

in excel erscheint das ganze nun als text 450.5 und nicht als number. habe auch schon versucht ein , statt einen . an set value zu übergeben was zum selben erfolg geführt hat.

die suchfunktion und google konnten mir bisher nicht weiterhelfen. viel zu viel asp zeugs mitlerweile im umlauf...

vielleciht weiß einer von euch ja rat! vorab schonmal dank !!!

gruß

Geschrieben

Da das sehr nach COM riecht und ich vor Kurzem auch bissl mit Excelexport Probleme hatte, verweiß ich mal hierauf:

Click me

Ist zwar C# aber die Verwendung von COM ist ja in VB fast die Gleiche.

Zusammengefasst:

Über ein Range (Spalte[n], Zeile[n], Kombination[en]) kannst du über die Eigenschaft NumberFormat den "Datentyp" der Zelle(n) angeben.

@ Ist hierbei Text und # mit Ziffern jeweiles eine Zahl.

Vielleicht hilft dir das ja.

Geschrieben

hej,

erstmal danke für die antwort. leider funktioniert das bei mir aber nicht da ich kein template als vorlage habe. hierdurch werden die zahlen z.b als 45,4 oder 45,4 eingetragen aber nach wie vor nicht als number erkannt. somit geht auch die auto sum funktion nicht.

Geschrieben

Ähm, trag die Zahl mal als 45.4 ein - das Komma kannst du über den oben genannten Numberformatstring einstellen

btw: ist da wirklich ein D in dem String?

450.45D - wäre klar, dass das in einen String umgewandelt wird

Geschrieben

ich hab folgendes getestet:


dim t as decimal

t = 45.55


.Cell(vRow, 0).NumberFormat = "#,##"


.Cell(vRow, 0).SetValue(t)


wir nachwie vor nicht als number erkannt

Geschrieben

(sorry edit geht nicht) ich hab mich verschrieben hab folgendes probiert:


dim t as double

t = 45.55


.Cell(vRow, 0).NumberFormat = "#,##"


.Cell(vRow, 0).SetValue(t)


so, bin aber nun zu dem entschluß gekommen das number format weg zulassen. zwar sehen dann die zahlen aus wie:

6700 und 430,4 (statt 430,40) aber damit gehen die number funktionen. wenn ich das number format benutze stimmen die kommas nicht mehr etc..

aber trotzdem nochma danke für die hilfe !

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...