使用itextsharp将dataGridView转换为pdf

我在尝试获取dataGridView中特定列的值并将它们添加到PdtPtable时遇到问题。 但是重复了表中添加的值,例如第一行添加了两次。我试图遍历每一行和每行中的每一行。

PdfPTable pdfTable= new PdfPTable(5); foreach(DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell celli in row.Cells) { try { pdfTable.AddCell(celli.Value.ToString()); } catch { } } doc.Add(pdfTable); } 

我已在您的代码段中修复了缩进。 你现在可以一眼就看出你做错了什么。

你有:

 PdfPTable pdfTable= new PdfPTable(5); foreach(DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell celli in row.Cells) { try { pdfTable.AddCell(celli.Value.ToString()); } catch { } } doc.Add(pdfTable); } 

这意味着您正在创建一个表,将其添加为有行的次数,因此重复行。

你应该有:

 PdfPTable pdfTable= new PdfPTable(5); foreach(DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell celli in row.Cells) { try { pdfTable.AddCell(celli.Value.ToString()); } catch { } } } doc.Add(pdfTable); 

或者更好的是:

 PdfPTable pdfTable= new PdfPTable(5); foreach(DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell celli in row.Cells) { pdfTable.AddCell(celli.Value.ToString()); } } doc.Add(pdfTable); 

现在您只添加一次表。