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.