我有.xlsx文档,我需要将一些值导入到具有已定义名称的单元格中。这些单元格中很少被格式化为货币,我在这些单元格中导入的值为decimal
类型,我以这种方式导入:
cell.CellValue = new CellValue(value.ToString().Replace(",", "."));
在同一个电子表格中,有一些单元格具有使用我导入的货币单元格的公式(例如,我在定义名称为H27
的单元格Total
中导入值,并且字段I27
有一个公式=Total*0.23
)。
导入完成后,值已成功导入(并正确格式化为货币),但在我单击每个公式单元格的公式复选标记或更改货币值之前,公式单元格无法正确计算(在本例中,包含此单元格的所有公式都会刷新)。
对于公式在导入完成后自动计算值的单元格,我该怎么做?
答案 0 :(得分:1)
我已经弄清楚了。具有公式的单元格内部具有<CellFormula>
个字段。这些字段具有bool
属性CalculateCell
,如果设置为true,则告诉Excel在打开文件后计算公式。由于我不知道哪些配方细胞会受到细胞的影响,我会按照以下方式管理所有配方细胞:
foreach (var cell in sheetData.Descendants<CellFormula>())
cell.CalculateCell = true;