cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
Modifié par cs_JMO le 30/01/2016 à 23:12
Whismeril
Messages postés19029Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention26 avril 2024
-
9 mai 2016 à 22:42
Bonsoir le forum,
J'effectue séquentiellement les étapes suivantes :
- Chargement d'une collection dans un datagridview;
- Chargement du datagridview dans un onglet d'un fichier Excel;
- Mise en forme (présentation) de ce fichier Excel.
Etape 1 :
''check log : 30/01/2016 22:09:32 début load collection ListOf dans datagridview datagridviewlines.DataSource = ListOfJob ''check log : 30/01/2016 22:09:35 fin load collection ListOf dans datagridview
Etape 2 :
''check log : 30/01/2016 22:09:38 début load datagridview dans excel Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application() Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet
For Each col As DataGridViewColumn In datagridviewlines.Columns xlWorkSheet.Cells(1, col.Index + 1) = col.HeaderText For Each row As DataGridViewRow In datagridviewlines.Rows xlWorkSheet.Cells(row.Index + 2, col.Index + 1) = row.Cells(col.Index).Value Next Next ''check log : 30/01/2016 22:10:34 fin load datagridview dans excel
Etape 3 :
''check log : 30/01/2016 22:10:34 début mise en forme du fichier excel Dim LastRow As Long = 0 Dim LastCol As Long = 0
With xlApp .Visible = False .DisplayAlerts = False With xlWorkSheet .AutoFilterMode = False LastRow = .Range("A" & .Rows.Count).End(Excel.XlDirection.xlUp).Row LastCol = xlWorkSheet.UsedRange.Columns.Count() With .Range(.Cells(1, 1), .Cells(LastRow, LastCol)).Borders .LineStyle = 1 ' (valeur de xlContinuous) .Weight = 2 ' (valeur de xlThin) .ColorIndex = 0 ' (valeur du noir) End With End With End With
' Sauvegarde et fermeture du fichier Plan_Production xlWorkBook.SaveAs(newfilePDP) xlWorkBook.Close() xlApp.DisplayAlerts = True xlApp.Quit() xlWorkSheet = Nothing xlWorkBook = Nothing xlApp = Nothing ''check log : 30/01/2016 22:10:35 fin mise en forme du fichier excel
Visiblement, mon étape 2 (Load datagridview dans excel) n'est pas performante.
Quelle autre méthode à utiliser pouvez-vous me conseiller ?
c'est le même concept qu'avec Word, utiliser l'API est couteux en temps, travailler sur le xlsx directement est bien plus performant.
Il existe sur CodePlex un package pour xlxs, que je n'ai pas encore eu l'occasion de tester.
Alors, oui je sais ton boulot les bloque, alors je l'ai mis là, le lien est valable 4 jours.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 31 janv. 2016 à 21:16
Bonsoir Whismeril,
Merci pour le lien.
J'ai récupéré la librairie et fait des tests.
Hélas, on ne peut que créer un fichier xlsx.
Il n'y a pas la possibilité d'ouvrir un fichier existant et de modifier un onglet.
Dommage !!!
Whismeril
Messages postés19029Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention26 avril 2024656 31 janv. 2016 à 22:42
31 janv. 2016 à 21:16
Merci pour le lien.
J'ai récupéré la librairie et fait des tests.
Hélas, on ne peut que créer un fichier xlsx.
Il n'y a pas la possibilité d'ouvrir un fichier existant et de modifier un onglet.
Dommage !!!
31 janv. 2016 à 22:42
J'ai vu ça
https://www.youtube.com/watch?v=t3BEUP0OTFM
1 févr. 2016 à 22:24
Je viens de tester LinqToExcel, c'est bien mais .... read only.
Demain j'essaierai ExcelLibrary.