Excel无法识别closedXML / c#中的公式

时间:2016-10-17 14:04:44

标签: c# excel excel-formula formulas closedxml

  

信息:以下代码位于foreach循环中

使用:

indexSheet.Cell("G" + cellIndex).FormulaA1 = "=SUM(A1:A10)";

只有在我直接在Excel中输入时才有效:

indexSheet.Cell("G" + cellIndex).FormulaA1 = "=FIND(\"erw\";H5)"; // with Property
indexSheet.Cell("G" + cellIndex).SetFormulaA1("=FIND(\"erw\";H5)");  //with Function
indexSheet.Cell("G" + cellIndex).FormulaA1 = $"COUNTIF(H{cellIndex};\"*\"&$C$2&\"*\")*(MAX($G$4:G{cellIndex - 1})+1)";
indexSheet.Cell("B" + cellIndex).FormulaA1 = $"=IF(ROW()-{cellIndex}>MAX(G:G);\"\";HYPERLINK(CONCATENATE(\"#\";(INDEX(H:H;MATCH(ROW()-4;G:G;0)));\"!B{cellIndex}\");(INDEX(H:H;MATCH(ROW()-4;G:G;0)))))";

我已经检查/尝试过:

  1. 因为在stackoverflow中存在类似的情况:如果我的函数的语言与我的excel语言匹配(都是英语)
  2. 我试过,如果更简单的公式可以像SUM()FIND()那样工作 - > (-SUM有效,FIND无效)
  3. 我直接在excelsheet(在这里工作的公式)中输入公式
  4. 我在Loop外面用硬编码的单元格信息进行了尝试,没有" cellindex" -variable
  5. 查看了closedXML文档
  6. Whit在公式的开头有等号,没有它
  7. 我尝试使用closedXML Vers。 0.76.0和0.80.1(最新稳定)
  8. Excel告诉我: Picture1

    而且: Picture2

    图2中的链接XML日志文件包含有关已删除部分的信息

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
        <logFileName>error035720_03.xml</logFileName><summary>Errors were detected in file 'C:\Users\XXX\Documents\Output\CodeBook.xlsx'</summary>
        <removedRecords>
            <removedRecord>Removed Records: Formula from /xl/worksheets/sheet.xml part</removedRecord>
            <removedRecord>Removed Records: Formula from /xl/calcChain.xml part (Calculation properties)</removedRecord>
        </removedRecords>
    </recoveryLog>
    

1 个答案:

答案 0 :(得分:3)

你不能使用分号(;)来分隔closedxml中的参数。使用逗号(,),如下所示:

indexSheet.Cell("G" + cellIndex).FormulaA1 = "=FIND(\"erw\",H5)";

这就是SUM(range)有效但[{1}}没有...

的原因