使用EPPlus将公式应用于每一行的两列中的值相乘

问题描述

我有一个程序,可以将许多行写入Excel电子表格:

int row = HEADER_ROW + 1;
foreach (var i in items)
{
    worksheet.Cells[row,1].Value = i.description;
    worksheet.Cells[row,2].Style.Numberformat.Format = "$0.00";
    worksheet.Cells[row,2].Value = i.amount; // this is a decimal
    worksheet.Cells[row,3].Value = i.quantity; // this is an int

    // multiply the values in cols 2 and 3 and display the result in col 4
    //worksheet.Cells[row,4].Formula = ?

    row++;
}
worksheet.Calculate();

如何要求EPPlus在要写入的每一行的第4列中创建一个公式,该公式将第2列和第3列中的值相乘?也就是说,实现与手动在Excel电子表格本身中键入公式“ = B6 * C6”(或第一行为准),然后将其向下拖动到列中相同。

解决方法

您可以为此使用范围。

var range = worksheet.Cells[1,4,worksheet.Dimension.End.Row,4];
range.Formula = string.Format("{0}*{1}",worksheet.Cells[1,2].Address,3].Address);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...