C#.NET 如何在Excel现有数据末尾插入新行计算汇总值
实现方案
你只需要在原有业务数据追加完成后、return语句之前,增加汇总值计算和汇总行追加的逻辑即可,完整可运行代码如下:
var excelDataRows = new List<ExcelDataTableRow> { new ExcelDataTableRow { CellValues = new List<string> { "Fecha", "Contrato", "Consorcio", "Unidad", "Importe Cobrado", "Comisión Plataforma", "Neto", "Factura" } } }; excelDataRows.AddRange(billingSummary.OrderBy(x => x.PaymentDate) .ThenBy(x => x.OwnersAssociationCode) .ThenBy(x => x.FunctionalUnitCode) .Select(item => new ExcelDataTableRow { CellValues = new List<string> { // 原手动拼接日期可优化为格式化方法,写法更简洁 item.PaymentDate.ToString("dd/MM/yyyy"), item.ContractCode.ToString(), item.OwnersAssociationCode.ToString(), item.FunctionalUnitCode.ToString(), item.TotalAmount.ToStringCurrency(), item.PlapsaComission.ToStringCurrency(), item.NetAmount.ToStringCurrency(), item.Type + ' ' + item.PointOfSale + '-' + item.Number, } })); // 新增汇总行逻辑 // 计算需要汇总的三个金额字段总和 var totalAmountSum = billingSummary.Sum(x => x.TotalAmount); var comissionSum = billingSummary.Sum(x => x.PlapsaComission); var netAmountSum = billingSummary.Sum(x => x.NetAmount); // 构造汇总行追加到列表末尾 excelDataRows.Add(new ExcelDataTableRow { CellValues = new List<string> { "总计", // 第一列作为汇总标识,可根据需求修改或留空 "", "", "", totalAmountSum.ToStringCurrency(), comissionSum.ToStringCurrency(), netAmountSum.ToStringCurrency(), "" } }); return excelDataRows;
补充说明
- 汇总行的前四列可根据业务需要调整显示内容,不需要汇总标识的话直接设置为空字符串即可
- 如果需要对其他字段做汇总统计,只需修改对应求和逻辑和单元格赋值即可
内容的提问来源于stack exchange,提问作者Gianfranco Grigera
相关产品推荐
相关产品推荐

