[英]Adding sum of rows in a dynamic column using ClosedXML
有什么办法可以在 excel 中将给定列的可能行(单元格)数是动态的,即行数不固定的单元格(行)的内容相加(总结)工作表? 我一直在尝试没有任何有意义的结果,我想计算最后一列名为“Total Inc Vat”的总数,它是如此动态; 这是我的代码片段。
var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add("data");
string filename = "Data from" + " "+ reportParams.StartDate.ToString("dd-MM-yyyy") + " to "+ reportParams.EndDate.ToString("dd-MM-yyyy");
worksheet.Cell(1, 1).Value = filename;
// column header
worksheet.Range(1, 1, 1, 8).Merge().AddToNamed("data");
// column names range to be formatted
worksheet.Range(3, 1, 3, 8).AddToNamed("data");
// format Total Inc Vat column to currency
worksheet.Column(8).Style.NumberFormat.Format= "0.00";
// column names
worksheet.Cell(3, 1).Value = "Document Date";
worksheet.Cell(3, 2).Value = "Document Number";
worksheet.Cell(3, 3).Value = "Description";
worksheet.Cell(3, 4).Value = "Project Code";
worksheet.Cell(3, 5).Value = "Project Name";
worksheet.Cell(3, 6).Value = "Client Name";
worksheet.Cell(3, 7).Value = "Client Account";
worksheet.Cell(3, 8).Value = "Total Inc Vat";
//
var titlesStyle = workbook.Style;
titlesStyle.Font.Bold = true;
titlesStyle.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
titlesStyle.Fill.BackgroundColor = XLColor.Cyan;
// format all titles in one shot
workbook.NamedRanges.NamedRange("data").Ranges.Style = titlesStyle;
worksheet.Cell(4, 1).SetValue(results);
worksheet.Columns().AdjustToContents();
这都是需要添加的。 其中Cell()
中的 4 是单元格行, results.Count()
是该单元格中生成的所有内容。
// calculate average of Total Inc Vat
worksheet.Cell(4 + results.Count(), 8).FormulaA1 = @$"=SUM(H4:H{3 + results.Count()})";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.