2016-10-17 3 views
2

Info: Следующий код в Еогеасп циклеExcel не признают формулы из closedXML/с #

работ:

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 существует подобный случай: Если язык моих функций соответствия с моим первенствовать язык (оба английские)
  2. Я попробовал, если простые формулы будут работать как SUM() или FIND() -> (-sum работы, FIND не работает)
  3. я ввел формулу непосредственно в excelsheet (формулы работают здесь)
  4. Я попробовал его снаружи от Loop с жестким кодированием ячейки -информации и без «cellindex» -переменная
  5. проверил closedXML-документацию
  6. WHIT знака равенства в начале формулы и без него
  7. Я попытался с closedXML Vers. 0.76.0 и 0.80.1 (последняя стабильная)

Excel показывает мне это: Picture1

И это: Picture2

связанный XML-файл журнала с Picture 2 содержит информацию об удаленных деталях

<?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> 

ответ

3

Вы не можете использовать точку с запятой (;) для разделения аргументов в файле closedxml. Используйте запятую (,), как это:

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

, что является причиной, почему SUM(range) работает, но FIND(find_text;within_text) не ...

 Смежные вопросы

  • Нет связанных вопросов^_^