【发布时间】:2017-08-04 04:40:41
【问题描述】:
我正在从数据库中读取数据,并使用 iTextSharp 填充表。这是我读取数据的方式:
var db = Database.Open("NewDatabase");
var sql =
@"SELECT FullName,
[2017-01-02], [2017-01-03], [2017-01-04],
([2017-01-02] + [2017-01-03] + [2017-01-04]) as 'DatesSum',
[Week1]
FROM [NewTable]";
var data = db.Query(sql);
var columns = data.First().Columns;
var doc = new Document();
PdfWriter.GetInstance(doc, Response.OutputStream);
doc.Open();
PdfPTable table = new PdfPTable(new float[] {30f, 10f, 10f, 10f, 10f, 10f});
foreach(var row in data)
{
foreach(var column in columns)
{
table.AddCell(new Phrase(row[column] != null ? row[column].ToString() : string.Empty));
}
}
doc.Add(table);
doc.Close();
如您所见,我使用“foreach”循环数据并填充表格。这是我知道的填充表格的唯一方法(我对 iTextSharp 还很陌生)。
我一直在尝试将数据对齐到单元格的中间。另外,我想交替行的颜色(每隔一行)。我一直在循环内尝试这样的事情,但没有结果:
row[column].HorizontalAlignment = 1;
参考:https://www.mikesdotnetting.com/article/205/exporting-the-razor-webgrid-to-pdf-using-itextsharp
【问题讨论】: