0

dataGridView の特定の列の値を取得して PdtPtable に追加しようとしているときに問題が発生しました。ただし、テーブルに追加された値は繰り返されます。たとえば、行 1 が 2 回追加されます。各行と各列のすべての行を調べてみました。

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);
}
4

1 に答える 1

1

コード スニペットのインデントを修正しました。何が間違っているのかを一目で確認できるようになりました。

あなたが持っている:

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 回だけ追加しています。

于 2015-01-27T07:16:05.853 に答える