我正在将DataGridview导入Itextsharp,导入正常但是我在网格中也有一个复选框列,我不想在pdf中导入该列,有没有办法省略它。
以下是代码。
PdfPTable pdfTable9 = new PdfPTable(dataGridView2.ColumnCount);
pdfTable9.SetWidths(new float[] { 5f, 10f, 10f, 7f, 9f, 3f});
pdfTable9.DefaultCell.Padding = 3;
pdfTable9.WidthPercentage = 100;
pdfTable9.HorizontalAlignment = Element.ALIGN_RIGHT;
pdfTable9.DefaultCell.BorderWidth = 1;
foreach (DataGridViewColumn column in dataGridView2.Columns)
{
PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText, fontTitle2));
cell.BackgroundColor = new iTextSharp.text.BaseColor(240, 240, 240);
pdfTable9.AddCell(cell);
}
foreach (DataGridViewRow row in dataGridView2.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
pdfTable9.AddCell(new Phrase(cell.Value.ToString(), fontTitle));
}
}
答案 0 :(得分:0)
我目前没有IDE,因此下面可能会出现拼写错误,但您可以将已知索引硬编码为跳过逻辑,也可以检查每个column
对象。
//Set our skip column to an invalid index to start with
var colToSkip = -1;
//Index loop variable
var i = 0;
foreach (DataGridViewColumn column in dataGridView2.Columns)
{
if( column is DataGridViewCheckBoxColumn)
{
colToSkip = i;
}
else
{
PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText, fontTitle2));
cell.BackgroundColor = new iTextSharp.text.BaseColor(240, 240, 240);
pdfTable9.AddCell(cell);
}
i++;
}
foreach (DataGridViewRow row in dataGridView2.Rows)
{
i = 0;
foreach (DataGridViewCell cell in row.Cells)
{
if( i != colToSkip )
{
pdfTable9.AddCell(new Phrase(cell.Value.ToString(), fontTitle));
}
i++;
}
}