csharp 赢智自动化Excel表格公式--NPOI

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 赢智自动化Excel表格公式--NPOI相关的知识,希望对你有一定的参考价值。

public static void CopyExcelTemplate(HSSFWorkbook wk)
        {
            var sheet = wk.GetSheetAt(0);
            var lastRow = sheet.LastRowNum;
            var numberStyle = wk.CreateCellStyle();
            numberStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00");
            sheet.ShiftRows(0, lastRow, 7, true, true);//在头部写新数据
            sheet.CopyRow(8, 0);
            int nowYear = DateTime.Now.Year;
            for (var i = 1; i <= 5; i++)
            {
                int rowLine = GlobalConfig.DefaultYears - (i) + 1; //计算5年的 如今年2017 2012的在第二行(数组从0开始)
                var fromDay = $"{(nowYear - rowLine)}/1/1";
                var toDay = DateTime.Now.ToString("yyyy/MM/dd");
                sheet.GetRow(i).CreateCell(0).SetCellValue(toDay);
                sheet.GetRow(i).CreateCell(2).SetCellValue(toDay);
                sheet.GetRow(i).CreateCell(1).SetCellValue(fromDay);
                var testYears = sheet.GetRow(i).CreateCell(3);
                testYears.CellStyle = numberStyle;
                testYears.CellFormula=$"(C{i + 1}-B{i + 1})/365";//程序从0开始,excel从1开始
            }
            var PERYEAR_PROFIT_PRECENT = sheet.GetRow(6).CreateCell(6);
            PERYEAR_PROFIT_PRECENT.CellFormula= "SUM(G2:G6)";

            var TEMP_NUM = sheet.GetRow(6).CreateCell(7);
            TEMP_NUM.CellFormula = "SUM(H2:H6)";

            var ACT_PARA = sheet.GetRow(6).CreateCell(8);
            ACT_PARA.CellFormula = "=VLOOKUP(MAX(G2:G6),G2:I6,3,0)";

            sheet.ForceFormulaRecalculation = true;
        }

以上是关于csharp 赢智自动化Excel表格公式--NPOI的主要内容,如果未能解决你的问题,请参考以下文章

Excel表格变颜色公式

如何让excel单元格公式中自动添加标点符号?

excel表格引用公式的方法步骤

excel表格利用公式标注颜色的教程

EXCEL表格引用多表数据设置公式的便捷方法

excel表格时间如何自动修改为当天的时间