IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Datagridview à PDF


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 34
    Par défaut Datagridview à PDF
    Bonjour, voilà mon problème : La référence d'objet n'est pas définie à une instance d'un objet.

    Je suis bloqué, j'essais de recopier mon datagridview dans un pdf voilà mon code :

    déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Imports MySql.Data.MySqlClient
    Imports MySql.Data.Types
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports System.Text
    Imports System.IO
    Imports iTextSharp.text.pdf
    Imports iTextSharp.text
    Imports iTextSharp.text.html
    Imports iTextSharp.text.html.simpleparser
    Lee reste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim pdfTable As New PdfPTable(Dtgdv_ticket.ColumnCount)
            pdfTable.DefaultCell.Padding = 3
            pdfTable.WidthPercentage = 30
            pdfTable.HorizontalAlignment = Element.ALIGN_LEFT
            pdfTable.DefaultCell.BorderWidth = 1
     
            For Each column As DataGridViewColumn In Dtgdv_ticket.Columns
                Dim cell As New PdfPCell(New Phrase(column.HeaderText))
                cell.BackgroundColor = New iTextSharp.text.BaseColor(240, 240, 240)
                pdfTable.AddCell(cell)
            Next
     
            For Each row As DataGridViewRow In Dtgdv_ticket.Rows
                For Each cell As DataGridViewCell In row.Cells
                    pdfTable.AddCell(cell.Value.ToString())
                Next
            Next
     
            Dim folderPath As String = "C:\Users\degecom\Desktop\test1\test.pdf"
            If Not Directory.Exists(folderPath) Then
                Directory.CreateDirectory(folderPath)
            End If
            Using stream As New FileStream(folderPath & "DataGridViewExport.pdf", FileMode.Create)
                Dim pdfDoc As New Document(PageSize.A2, 10.0F, 10.0F, 10.0F, 0.0F)
                PdfWriter.GetInstance(pdfDoc, stream)
                pdfDoc.Open()
                pdfDoc.Add(pdfTable)
                pdfDoc.Close()
                stream.Close()
            End Using
     
            AxAcroPDF1.src = "C:\Users\degecom\Desktop\test1\test.pdf"
        End Sub
    Pouvez-vous m'aider svp, je ne comprend pas ce type d'erreur.

    La ligne de l'erreur est à la n*16

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    au moment de l'erreur, le code arrive - je pense - sur la ligne préparée pour un éventuel enregistrement.
    Cette ligne est contenue dans la collection Rows, mais n'est encore qu'une ligne remplie de "rien" , donc non reconnue comme une ligne valide, d'où l'erreur.
    A tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            For Each row As DataGridViewRow In Dtgdv_ticket.Rows
                If Not row.IsNewRow Then
                    For Each cell As DataGridViewCell In row.Cells
                        pdfTable.AddCell(cell.Value.ToString())
                    Next
                End If
            Next

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 34
    Par défaut
    Je te remercie Chirsmonoy (: Mais au bout d'un moment j'ai fais du pas à pas et j'ai vu que je récupérer très bien les données, mais arriver à la fin de la ligne il me disait, bah "j'ai plus rien a envoyer ERREUR"...
    Du coup j'ai mis une condition de sortis (:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
                Dim i As Integer = 0
                For Each row As DataGridViewRow In Form4_Ticket.Dtgdv_ticket.Rows
                    If Not Form4_Ticket.Dtgdv_ticket.Rows.Count = i + 1 Then
                        For Each cell As DataGridViewCell In row.Cells
                            If Not cell.Value.ToString = vbNullString Then
                                Dim cellPDF As New PdfPCell(New Phrase(cell.Value.ToString()))
                                pdfTable.AddCell(cellPDF)
                            Else
                                Exit For
                            End If
                        Next
                        i = i + 1
                    Else
                        Exit For
                    End If
                Next
    Merci beaucoup quand même (: Pouce bleu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/07/2014, 18h30
  2. Exporter les données Datagridview dans fichier pdf
    Par raulily dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 12/07/2013, 18h30
  3. Réponses: 1
    Dernier message: 15/07/2011, 13h11
  4. transferer un datagridview dans pdf creator
    Par toutouz dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 08/06/2011, 14h19
  5. [c#]Ouverture de pdf via datagridview
    Par boss_gama dans le forum C#
    Réponses: 1
    Dernier message: 09/05/2007, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo