Export de DataGrid vers pdf

[Fermé]
Signaler
Messages postés
30
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
3 janvier 2021
-
Messages postés
16333
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2021
-
Bonjour..j'essaie de créer un document pdf avec mon dataGrid.. J'ai fait des recherches mais je ne trouve que des solutions en WinForm(dataGridView)...Mon code qui ne marche pas est le suivant... quelqu'un pourrait me le suivre svp?
private void creerPdf_Click(object sender, RoutedEventArgs e)
        {
            Document [/fichier/doc.php3 doc] = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);
            PdfWriter wr = PdfWriter.GetInstance(doc, new FileStream("Dossier_pdf", FileMode.Create));
            doc.Open();
            PdfPTable table = new PdfPTable(dmdSatisfaitesDTGrid.Columns.Count);
            BaseFont btnColumnHeader = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            for (int i = 0; i < dmdSatisfaitesDTGrid.Columns.Count; i++)
            {
                PdfPCell cell = new PdfPCell();
                table.AddCell(cell);
            }
 
            for (int i = 0; i < dmdSatisfaitesDTGrid.Columns.Count; i++)
            {
                table.AddCell(dmdSatisfaitesDTGrid.Columns[i].ToString());
            }
            doc.Add(table);
            doc.Close();
            wr.Close();
 
 
        }

Merci..

4 réponses

Messages postés
16333
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2021
745
Bonjour
En attendant qu’un modérateur corrige ta mis en forme, voici un petit tutoriel pour utiliser correctement la coloration syntaxique https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
30
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
3 janvier 2021
3
Merci Whismeril...Voici la correction de la coloration syntaxique
private void creerPdf_Click(object sender, RoutedEventArgs e)
        {
            Document [/fichier/doc.php3 doc] = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);
            PdfWriter wr = PdfWriter.GetInstance(doc, new FileStream("Dossier_pdf", FileMode.Create));
            doc.Open();
            PdfPTable table = new PdfPTable(dmdSatisfaitesDTGrid.Columns.Count);
            BaseFont btnColumnHeader = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            for (int i = 0; i < dmdSatisfaitesDTGrid.Columns.Count; i++)
            {
                PdfPCell cell = new PdfPCell();
                table.AddCell(cell);
            }
 
            for (int i = 0; i < dmdSatisfaitesDTGrid.Columns.Count; i++)
            {
                table.AddCell(dmdSatisfaitesDTGrid.Columns[i].ToString());
            }
            doc.Add(table);
            doc.Close();
            wr.Close();
 
 
        }
Messages postés
16333
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2021
745
As tu exécuté en pas à pas pour voir ce qui se passe?
Si oui peux tu décrire?

Que vaut
dmdSatisfaitesDTGrid.Columns[i].ToString()
?

Peux tu préciser ce qui ne marche pas?
Messages postés
30
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
3 janvier 2021
3
Merci Whismeril..En fait c'est une table de ma base de données que j'ai appelée dans le dataGrid. Comment puis-je me servir directement de la table stp? Je suis un peu confus
Messages postés
16333
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2021
745
Je suppose que tu as utilisé un datatable ou un objet de ce genre, et bien c’est de cet objet qu’il faut extraire les données
Messages postés
30
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
3 janvier 2021
3
Bonjour... Oui c'est un datatable que j'ai utilisé. C'est comment en extraire les données qui me pose le problème..
Messages postés
16333
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2021
745
Messages postés
30
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
3 janvier 2021
3 >
Messages postés
16333
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2021

Merci Whismeril... J'avais lu les exemples mais ils répondent pas tangiblement à ma question...
voici comment j'ai rempli le datagrid :
private void DTGrid_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                DataTable dt = new DataTable("Demandes");
                sqlcon.Open();
                String req = "SELECT Num_Dmd, Designation, Qte, PU, Total, Date, Statut, Nom_Demandeur, Service_Demandeur FROM Demandes";
                SqlCommand cmd = new SqlCommand(req, sqlcon);
                cmd.ExecuteNonQuery();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);
                DTGrid.ItemsSource = dt.DefaultView;
                da.Update(dt);
                sqlcon.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Je veux créer un bouton qui va servir à exporter le datagrid en document pdf... Merci d'avance
Messages postés
16333
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2021
745
Tu as le code qui écrit le pdf.
Je t'ai donné un lien qui montre comment lire les données du datatable.

Il ne te reste qu''à lire les données du datatable dans le code qui écrit le pdf.

Donc ça répond quand-même assez "tangiblement" à ta question.

Il faut tout de même pensez à déclarer ton datatable avec une portée suffisante.

En l'état, sa portée n'est valable que dans la méthode DTGrid_Loaded