저는 이것이 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는 꽤 거친 지불을 통해 이동합니다,하지만 난 더 나은 방법을 발견하지 않았습니다. 누군가가보다 세련된 솔루션을 제공 할 수 있기를 바랍니다.
더 나은 답변을 찾으시기 바랍니다.하지만 그룹화를 수동으로 수행해야합니다. 나는 이것이 모두 EPPlus와 너무 흔한 것을 발견했다. 데이터 (아마 linq의'GroupBy()'를 사용하여 데이터를 그룹화 한 다음 각 그룹의 첫 번째 행에 대한 첫 번째 4 열 값만 인쇄해야합니다. – kmc059000