Excel计算问题

时间:2010-09-19 00:20:53

标签: c# .net excel-2007 openxml

我有.xlsx文档,我需要将一些值导入到具有已定义名称的单元格中。这些单元格中很少被格式化为货币,我在这些单元格中导入的值为decimal类型,我以这种方式导入:

cell.CellValue = new CellValue(value.ToString().Replace(",", "."));

在同一个电子表格中,有一些单元格具有使用我导入的货币单元格的公式(例如,我在定义名称为H27的单元格Total中导入值,并且字段I27有一个公式=Total*0.23)。

导入完成后,值已成功导入(并正确格式化为货币),但在我单击每个公式单元格的公式复选标记或更改货币值之前,公式单元格无法正确计算(在本例中,包含此单元格的所有公式都会刷新)。

对于公式在导入完成后自动计算值的单元格,我该怎么做?

1 个答案:

答案 0 :(得分:1)

我已经弄清楚了。具有公式的单元格内部具有<CellFormula>个字段。这些字段具有bool属性CalculateCell,如果设置为true,则告诉Excel在打开文件后计算公式。由于我不知道哪些配方细胞会受到细胞的影响,我会按照以下方式管理所有配方细胞:

   foreach (var cell in sheetData.Descendants<CellFormula>())
      cell.CalculateCell = true;