首先我把数据放在一个笨拙的网格视图中 作为在数据库上运行存储过程的结果,获得数据 然后我尝试在表中添加此数据并尝试将数据导出到pdf。
这是我的代码:
Dim GridView1 As New GridView
Dim pdfDoc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A1, 10.0F, 10.0F, 10.0F, 0.0F)
pdfDoc.Open()
Dim pdfTable As New PdfPTable(3)
For Each row As GridViewRow In GridView1.Rows
Dim Val1 As String = row.Cells(0).Text
Dim Val2 As String = row.Cells(1).Text
Dim Val3 As String = row.Cells(2).Text
Next
pdfDoc.Add(pdfTable)
pdfDoc.Close()
现在如何将这些值(val1,val2,val3)添加到表中,然后导出为pdf?
请帮忙吗?
答案 0 :(得分:1)
这是使用表格的一些示例iText代码。
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
PdfPTable table = new PdfPTable(8);
for(int aw = 0; aw < 16; aw++){
table.addCell("hi");
}
document.add(table);
document.close();
答案 1 :(得分:1)
这是错误的:
Dim pdfTable As New PdfPTable(3)
For Each row As GridViewRow In GridView1.Rows
Dim Val1 As String = row.Cells(0).Text
Dim Val2 As String = row.Cells(1).Text
Dim Val3 As String = row.Cells(2).Text
Next
这是错误的,因为您只是定义了三个string
值而没有对这些值做任何事情。为什么会这样?你的代码中没有任何事情发生。
您需要将这些string
值添加到您刚定义的table
。
Dim pdfTable As New PdfPTable(3)
For Each row As GridViewRow In GridView1.Rows
pdfTable.Add(row.Cells(0).Text)
pdfTable.Add(row.Cells(1).Text)
pdfTable.Add(row.Cells(2).Text)
Next
或者更确切地说,正如在这个问题的答案中所解释的那样:dataGridView to pdf with itextsharp
PdfPTable pdfTable= new PdfPTable(3);
foreach(DataGridViewRow row in dataGridView1.Rows) {
foreach (DataGridViewCell celli in row.Cells) {
pdfTable.AddCell(celli.Value.ToString());
}
}
doc.Add(pdfTable);
您需要应用较小的更改来将此C#代码段移植到VBA代码,但这不应该是一个问题。
也不是说如何定义PdfPTable
的单元格样式有很多变化。它们记录在官方网站上。