-1
データベースからデータを読み込み、iTextSharpを使用してテーブルを作成しています。あなたが見ることができるように、私はデータをループする「foreachの」を使用して、テーブルを移入してい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();
:これは私がデータを読んでいる方法です。それが私がテーブルを埋めることを知っている唯一の方法です(私はiTextSharpをかなり新しくしています)。
私はデータをセルの中央に揃えようとしています。また、行の色(1行おき)を交互にしたい。
row[column].HorizontalAlignment = 1;
リファレンス:https://www.mikesdotnetting.com/article/205/exporting-the-razor-webgrid-to-pdf-using-itextsharp
ありがとうkuujinboを。自分のケースのように、データベースクエリに答えを適用するにはどうすればよいですか?私はあなたがこの 'static readonly int rows = data.GetLength(0);'を行ったのを見ましたが、私はそれをどのように翻訳するのかわかりません(データベースから取得したときに自分のテーブルを作成しました)。あるいは、私の 'foreach'ループの中でこれを行う方法を知っているかもしれませんか? –