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

neecho - 14 févr. 2013 à 09:35
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 - 15 févr. 2013 à 08:54
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

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
14 févr. 2013 à 13:15
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
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
14 févr. 2013 à 13:26
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
0
@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
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
14 févr. 2013 à 17:44
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
15 févr. 2013 à 08:54
Bonjour,
juste pour info, j'ai vu ce projet hier:
http://wpfextendeddatagrid.codeplex.com/

il comporte une section export to excel.


louis
0
Rejoignez-nous