Veröffentlicht 7. August 200817 j 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ß
8. August 200817 j 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.
11. August 200817 j 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.
12. August 200817 j Ä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
12. August 200817 j 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
12. August 200817 j (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 !
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.