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
Grazie mille in anticipo.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

Rispondi quotando