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?
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?