コード スニペットのインデントを修正しました。何が間違っているのかを一目で確認できるようになりました。
あなたが持っている:
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);
これで、テーブルを 1 回だけ追加しています。