注意:我刚刚意识到Excel会增加报告编号,请忽略每个组的每一行都是相同的。
我有一个从数据库回来的数据表,看起来像这样
我试图在Excel输出中看起来像这样。我读过关于大纲的文章,但我不确定这是我真正追求的。我正在尝试" group"该案例编号字段的数据,但不重复每行的数据,因为它将是相同的。每个分组不同的数据是收款人及其金额。
只是寻找有关使用EPPlus的见解或其他遇到过相似内容的人的建议。
答案 0 :(得分:0)
我相信这可以通过Linq来实现。没有看到任何代码,有点难以产生一个好的例子,但结果应该可以通过以下想法实现:
首先使用Case_Number,Docket,Agency_Name和Report_Number填写excel单元格的foreach,然后执行第二次foreach以完成付款
var results = GetResults(); //However you retrieve your collection from DB
var groupedResults = results.GroupBy(a => new {
a.Case_Number,
a.Docket,
a.Agency_Name,
a.Report_Number}).Select(b => b.FirstOrDefault());
foreach(var group in groupedResults)
{
// Fill the cells
foreach(var payment in results.Where(a =>
a.Case_Number == group.Case_Number
&& a.Docket == group.Docket
&& a.Agency_Name == group.Agency_Name
&& a.Report_Number == group.Report_Number)
{
// Fill the payment detail cells and increment the row counter
}
}
不可否认,第二个foreach非常粗糙,但我还没有找到更好的方法。希望有人能够提供更优雅的解决方案