Esportare datagridview in PDF

mercoledì 09 dicembre 2009 - 00.31

gianbe Profilo | Newbie

Salve avrei la necessità di esportare un datagridview in pdf.
Ho guardato un pò in rete e ho trovato itext ma non ho trovato esempi chiari da seguire.
Qualcuno può aiutarmi?
Grazie
Gianni

tankian Profilo | Junior Member

Ciao, prova questo:

http://www.ujihara.jp/iTextdotNET/en/examplesvb.html

gianbe Profilo | Newbie

Grazie del link. Ho provato il seguente codice per la stampa in pdf:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim doc As Document = New Document
Dim ms As MemoryStream = New MemoryStream
Dim writer As PdfWriter = PdfWriter.GetInstance(doc, ms)
doc.Open()
doc.NewPage()

doc.Add(New Paragraph(Label1.Text))

doc.Close()
Dim bytes() As Byte = ms.ToArray
File.WriteAllBytes("c:\\prova.pdf", bytes)


System.Diagnostics.Process.Start("c:\\prova.pdf")

End Sub

Funziona correttamente e mi esporta in pdf il valore del Label1.text.
Non riesco però ad esportare una datagridview che ho nella form.
Ho sostituito infatti:
doc.Add(New Paragraph(Label1.Text))
con
doc.Add(New Paragraph(datagridview1))....ma mi da errore
Dove sbaglio?
Grazie

tankian Profilo | Junior Member

>Funziona correttamente e mi esporta in pdf il valore del Label1.text.
>Non riesco però ad esportare una datagridview che ho nella form.
>Ho sostituito infatti:
>doc.Add(New Paragraph(Label1.Text))
>con
>doc.Add(New Paragraph(datagridview1))....ma mi da errore
>Dove sbaglio?
>Grazie

La DGV funziona diversamente dei label, non ha la proprietà Text, una propeirtà simile potrebbe essere la Value, però devi specificare colonna e riga:

Datagridview1.item(colonna, riga).value

Ma tu della dgv cosa devi esportare? tutti i dati? una riga, una cella..?

gianbe Profilo | Newbie

Ciao, io vorrei esportare tutte le righe e tutte le colonne della tabella però essendo nuovo della programmazione ad oggetti non riesco a capire come fare.
Grazie ancora per l'aiuto.
Gianni

tankian Profilo | Junior Member

>Ciao, io vorrei esportare tutte le righe e tutte le colonne della tabella però essendo nuovo della programmazione ad oggetti non riesco a capire >come fare.
>Grazie ancora per l'aiuto.


Io farei un ciclo for:

for j as integer = 0 to datagridview1.columncount-1 for i as integer = 0 to datagridview1.rowcount-1 doc.add(new paragrapf(datagridview1.item(j, i).value)) next next

Non l'ho provato, ma la logica è questa.

gianbe Profilo | Newbie

Ho provato il codice che mi hai postato ma ottengo il seguente errore sulla riga:

doc.Add(New Paragraph(DataGridView1.Item(j, i).Value))


Errore 1 Risoluzione dell'overload non riuscita perché nessun 'New' accessibile può essere chiamato senza una conversione verso un tipo di dati più piccolo:

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5