繁体   English   中英

使用 ClosedXML 在动态列中添加行总和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM