Ciao a tutti,
è un po' di tempo che giro intorno a questo problema e non so veramente se esiste ciò che cerco, quindi vi chiedo di comprendermi se la richeista non è formulata in modo corretto.
Ho un'applicazione scritta in VB.NET. Tale applicazione ricava i dati da un database SQL Server 2008. Tali dati poi li memorizzo in un dataset e successivamente li visualizzo in un datagridview.
A questo punto l'utente ha la possibilità di esportare i dati visualizzati nel datagridview in un foglio Excel opportunamente formattato.
Fin qui tutto bene.
Il problema sorge nel momento in cui i dati estratti sono tanti, nell'ordine del migliaio, in tal caso l'esportazione in Excel è davvero lento forse nemmeno due ore bastano.
Quindi la mia domanda è esiste un metodo o una modalità in modo tale da velocizzare l'esportazione di un datagridview in Excel.
Posto il codice che utilizzo per l'esportazione:
E' da tener presente che la scrittura dei dati sul foglio Excel comincia dalla seconda riga in poi in quanto la prima l'ho dedicata alle intestazioni
codice:
For i = 0 To Me.DataView.RowCount - 1
For j = 0 To Me.DataView.ColumnCount - 1
If ((i Mod 2) = 0) Then
worksheet.Cells(i + 2, j + 1) = Me.DataView(j, i).Value
worksheet.Cells(i + 2, j + 1).borders.weight = 2
worksheet.Cells(i + 2, j + 1).horizontalalignment = Excel.XlHAlign.xlHAlignCenter
worksheet.Cells(i + 2, j + 1).verticalalignment = Excel.XlVAlign.xlVAlignCenter
worksheet.Rows.AutoFit()
Else
worksheet.Cells(i + 2, j + 1) = Me.DataView(j, i).Value
worksheet.Cells(i + 2, j + 1).borders.weight = 2
worksheet.Cells(i + 2, j + 1).interior.color = RGB(233, 233, 233)
worksheet.Cells(i + 2, j + 1).horizontalalignment = Excel.XlHAlign.xlHAlignCenter
worksheet.Cells(i + 2, j + 1).verticalalignment = Excel.XlVAlign.xlVAlignCenter
worksheet.Rows.AutoFit()
End If
Next
Next
Grazie mille in anticipo.