Spartacusを試すことができます。
これはC#で書かれた比較的新しい.NETライブラリです。これは、さまざまなデータベースに接続し、ExcelおよびPDFでレポートを生成することができます。
私はGoogleドライブ内の3つのファイルアップロード:スパルタカスを使用するためには
を、あなたはSystem.DataとSystem.Xmlのを参照する必要がパッケージ、およびSpartacus.dllが含まれます。あなたがSpartacus.Databaseオブジェクトを使用する必要はありません
Spartacus.Database.Generic v_database;
Spartacus.Reporting.Report v_report;
System.Data.DataTable v_table;
v_database = new Spartacus.Database.Postgresql("127.0.0.1", "database", "postgres", "password");
v_table = v_database.Query(
"select 'Example of Report made with Spartacus' as title, " +
" product, " +
" description, " +
" unit, " +
" quantity, " +
" total_cost, " +
" unit_cost " +
"from table", "REPORT");
v_report = new Spartacus.Reporting.Report(1, "template.xml", v_table);
v_report.Execute();
v_report.Save("report.pdf");
注:次の例では
は、私は簡単な手順でtemplate.xmlからreport.pdfを作成しました。他の方法でSystem.Data.DataTableを取得できる場合は、そのオブジェクトをReportオブジェクトに渡すことができます。
しかし、キャッチがあります。あなたはXMLテンプレートで見ることができるように、各列のために、あなたが知っておく必要があります。
- 列名(明らかに)
- タイトル
- 合わせ(LEFT、RIGHTまたはCENTER)
- 塗りつぶし(パーセント、100)余白のページマイナス幅の合計幅であること
- タイプ(INTEGER、REAL、BOOLEAN、CHAR、DATEまたはSTRING)
フィルとタイプが不可欠であり、あなたがミリアンペアすべての列についての情報を保持する必要があります。 これを達成するのはあまりにも難しいですし、あなただけの列名とタイプを得ることができる場合、あなたは次のようなタイプだけに基づいてaproximation、計算することができます:
- 製品はString型である、デフォルトの塗りつぶし= 30
- 説明は、デフォルトフィル= 30
- ユニットデフォルトフィル= 30
- 量は、String型である、String型でありますすべてのデフォルトの塗りつぶしのタイプREALの、デフォルトの塗りつぶし= 15
- TOTAL_COSTは、実数型で、デフォルトの塗りつぶし UNIT_COST = 15
- は、実数型で、デフォルトの塗りつぶし= 15
合計
- 列の塗りつぶし=列のデフォルトの塗りつぶし*(デフォルトの塗りつぶし/ 100の合計)は、30 + 30 + 30 + 15 + 15 + 15 =
その後、あなたは、動的なフィールド情報を持つダイナミックtemplate.xmlファイルを生成する必要があります。
免責事項:私はSpartacusの作成者で、メンテナーです。 http://developers.itextpdf.com/examples/xml-worker/html-tables:あなたはすでにHTMLを持っているので
、私はあなたがiTextののXMLWorkerを見てみましょうことを示唆しています。例はJavaで書かれていますが、C#では十分に明白でなければなりません。 iTextSharpは、iTextの.NETポートです。開示:私はiTextソフトウェアで働いています。 –
興味深い。私は何とか水平フィッティングを扱うことができますか?つまり、1ページに収まるコラムが多すぎる場合は、次のページに移動できますか? – kagelos
@kagelos私はあなたが欲しいと思っているが、jqueryが必要なソリューションを持っています。だから私はjqueryを使用して、あなたに解決策を与えることができますか? –