【发布时间】:2016-06-27 14:19:22
【问题描述】:
表格输出 21 列,我希望它出现在表单上,当它导出为 PDF 时,我只想选择 6 个特定列输出。
但在我的情况下,导出的 PDF 不会完全导出这些列,因为它只显示 2 列,并且数据行填充下一列标题。 这个 datagridview 是用 SQL 生成的,我正在使用 ItextSharp。
这是数据网格视图:
PDF 输出:
这是代码:
for (int i = 0; i < colNum; i++)
{
Phrase ph = null;
if (memberGrid.Columns[i].Name == "Name" || memberGrid.Columns[i].Name == "Gender" || memberGrid.Columns[i].Name == "Address" || memberGrid.Columns[i].Name == "Email Address" || memberGrid.Columns[i].Name == "Mobile No" || memberGrid.Columns[i].Name == "Home No.")
{
ph = new Phrase(memtable.Columns[i].ColumnName, FontFactory.GetFont("Arial", HeaderTextSize, iTextSharp.text.Font.BOLD));
mainTable.AddCell(ph);
}
}
for (int x = 0; x < memberGrid.Rows.Count; x++)
{
for (int k = 0; k < memberGrid.Columns.Count; k++)
{
if (memberGrid.Columns[k].Name == "Name" || memberGrid.Columns[k].Name == "Gender" || memberGrid.Columns[k].Name == "Address" || memberGrid.Columns[k].Name == "Email Address" || memberGrid.Columns[k].Name == "Mobile No" || memberGrid.Columns[k].Name == "Home No.")
{
if (memberGrid[k, x].Value != null)
{
string s = memberGrid[k, x].Value.ToString().Trim();
Phrase ph = new Phrase(s, FontFactory.GetFont("Arial", ReportTextSize, iTextSharp.text.Font.NORMAL));
mainTable.AddCell(ph);
}
}
}
}
我的表格如何正确显示?
【问题讨论】:
-
谢谢@RezaAghaei,它成功了。我现在看到我的代码不像 colNum 和 memtable 那样一致哈哈哈。
标签: c# winforms pdf datagridview itextsharp