ClosedXML.Report 實作 Excel 報表記錄
ClosedXML, Report, C#
引言
ClosedXML.Report 為 ClosedXML 的延伸套件。用來製作套用報表很方便。唯有已知的二個問題:
一) 說明文件寫得不好。
二) 有版本匹配問題。其為基底的 ClosedXML 最新版的可能不能匹配而出錯。
例如: ClosedXML.Report.v0.2.6
版與 ClosedXML.v0.97.0
版有匹配,但與較新的 ClosedXML.v0.102.0
不匹配。
參考文件
試用紀錄
範例:套入一份主檔與明細清單數據。
以下是結果畫面。上半部是主檔欄位直接用名稱對應套入,明細清單要透過 Excel 公式名稱
來對應。

下面是設定 Excel 樣板檔畫面。主檔欄位用 {{
欄位名稱
}}
』就能對應;但明細清單需設定 Excel公式
的【定義名稱】才能對應生效。之後可在【公式\名稱管理員】查看、編輯、刪除。



關鍵程式碼
using ClosedXML.Excel;
using ClosedXML.Report;
/// 使用 Excel 樣板檔生成報表
public MemoryStream ExportExcelRpt(List<QryDataListResult> dataList)
{
var template = new XLTemplate(@"Template/ExcelTpl01.xlsx"); //<--- 載入樣本檔
//# 模擬取得主檔資料
Customer cust = new Customer
{
Company = "亞洲志遠科技",
...
Orders = new List<Order>() //<--- 明細清單欄位名稱需與Excel『公式名稱』相呼應才能套入生效。
};
//# 帶入明細資料
foreach(var c in dataList)
{
cust.Orders.Add(new Order {
SaleDate = c.SaleDate,
...
});
}
template.AddVariable(cust); //<--- 把數據(主檔與明細清單)套入報表
template.Generate();
// return
var ms = new MemoryStream();
template.SaveAs(ms);
return ms;
}
(EOF)
Last updated