[Export]Enregistrer les données d'un DataGridView vers .xls de manière efficace

Signaler
-
Messages postés
793
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
10 février 2021
-
Bonjour à tous et à toutes.

Après maintes recherches sur le net, je me décide à poster ma demande ici.

Je recherche une façon optimisée d'extraire les données d'un DataGridView vers un fichier Excel. Je m'explique.

Beaucoup de codes/méthodes consistent à scanner le DataGrid, et à enregistrer cellule par cellule dans le fichier excel. Lorsque l'on à 100 cellules ça sera peut-être (sûrement ?) rapide, mais les données que j'ai à traiter se situent entre 14 et plus de 4000 cellules.

Ces données concernent des fabrications, et je ne peux pas réduire le nombre de champs à traiter.

J'ai trouvé, ou plutôt entraperçu, une solution qui serai avec Value2 de la classe Range mais je dois avouer que je n'ai pas compris grand chose.

Auriez-vous une solution rapide et sûre de transférer ces données du DataGrid vers un .xls sans passer par le code suivant s'il vous plait ?
for(int i=0; i< NbLigneDataGrid; i++)
{
for(int j = 0; j < NbColonneDataGrid; j++)
{
     Cellule[i,j] = Datagrid[i,j];
}
}


Merci d'avance.


Cordialement.

5 réponses

Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
Salut,

Je ne connais pas de solution miracle pas la voie classique.

Par contre l'open xml donne de très bon résultats.

Faut télécharger un sdk chez microsoft, qui simplifie grandement la génération du fichier.


BasicInstinct
Messages postés
15913
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
9 mai 2021
540
Bonjour,

je n'utilise pas ce que je vai te proposer donc je ne pourrais pas aller dans le détail.

La méthode que tu as trouvé, lance l'appilcation Excel et la télécommande (c'est ce que je fait moi, parce que je gère les mise en pages et les graphiques).
Pour ne faire que tu transfert de données (et je pense rapidement) il faut se connecter au classeur comme s'il s'agissait d'une base de données.Il y a des codes sur le site qui montrent comment. Par contre il faut que ton datagridview soit utilisé dans cette optique, avec un contenant de données en datasource, c'est ce contenant qui dialogera avec la base de données.


Whismeril
@BasicInstinct : D'accord, je vais regarder ça. Merci :)

@Whismeril : Les données du DataGrid viennent directement d'une base Oracle, interrogée via des OracleCommand etc. Cette base est celle d'un autre logiciel déjà en cours d'exploitation. Je ne maîtrise pas trop les DataSource mais si je comprend bien, ce que j'ai trouvé actuellement donne ce schéma de remplissage : BDD --> DataGrid --> Datas.xls
et avec le DataSource j'aurai : DataGrid <-- DataSource --> Datas.xls
Ai-je bien compris ?


Merci.



Neecho
Messages postés
15913
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
9 mai 2021
540
remplissage : BDD --> DataGrid --> Datas.xls
pas apotimisé
et avec le DataSource j'aurai : DataGrid <-- DataSource --> Datas.xls
presque le datasource est une propriété du datagridview qui permet l'affichage d'une source de données, celle ci peut être par exmple un dataset connecté à une base de données.



Whismeril
Messages postés
793
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
10 février 2021
8
Bonjour,
juste pour info, j'ai vu ce projet hier:
http://wpfextendeddatagrid.codeplex.com/

il comporte une section export to excel.


louis