PDA

View Full Version : [VB.net] Problema con decimali esportando flexgrid formattata in xls


papafoxtrot
28-03-2011, 22:31
Salve,

so che il problema è un po' ostico....


Sono riuscito ad esportare il contenuto di una flexgrid in excel attraverso il seguente codice:


Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form_Output

Private Sub Form_Output_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Export_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Export.Click
Dim ExcelApp As Excel.Application
Dim ExcelBook
Dim i, j As Integer

'ExcelApp = CreateObject("Excel.Application")
ExcelApp = New Excel.Application

ExcelApp.Application.Visible = True
'Genera il foglio
ExcelBook = ExcelApp.Workbooks.Add

For j = 1 To Results.Cols 'colonna
Results.Row = 0
Results.Col = j - 1
ExcelBook.Worksheets(1).Cells(1, j).value = Results.Text
For i = 2 To Results.Rows 'riga
Results.Row = i - 1
ExcelBook.Worksheets(1).Cells(i, j).Value = Val(Results.Text)
Next i
Next j

End Sub




la distinzione tra riga 0 e riga >0 è perché l'intestazione è un testo, mentre il resto della tabella è numerica. Non fateci caso.

Il problema è sorto quando, per migliorare l'ordine, ho preferito popolare le celle della flexgrid con il comando:

.text=formatnumber(variabile, numerodecimali).

oppure attraverso:

.text=format (variabile, #.#0)

la conosco meno. FUnzionava uguale. Il risultato però era lo stesso:

Quando esporto in excel succede che non riconosce più il punto coe separatore decimale, prende la virgola ogni 3 cifre e in definitiva fa un gran casino... Anche mettendo la , come separatore decimale (cosa che comunque non posso fare per via di alcuni software che uso), le cose non migliorano.ù

Che devo fare? Mi tengo la flexgrid non formattata?