2017-08-31 2 views
0

Ich versuche eine einfache Formel von SUM(E1:E6) zu erstellen, aber behalte immer eine Value cannot be null. Parameter name: stream. Ich habe ein = vor und habe es sogar Kleinbuchstaben ohne Erfolg gemacht. Eine Formel, die ich zur Arbeit bekommen konnte, war 1 + 3 + 8. Ich versuchte dann E1 + E2 + E3 + E4 + E5 + E6 und das gab den gleichen Fehler.NPOI Core - Formula Issue

Hier ist mein Code:

IWorkbook workbook = new XSSFWorkbook(); 
ISheet sheet1 = workbook.CreateSheet("Project Time"); 

... Other numeric and textual cells fill in and work great 

row = sheet1.CreateRow(RowIndex++); 

var test = row.CreateCell(ColIndex++); 
test.SetCellType(CellType.Formula); 
test.SetCellFormula($"1 + 2 + 3 + 4 + 5 + 6"); // WORKS 
test.SetCellFormula($"SUM(1 + 2 + 3 + 4 + 5 + 6)"); // FAILS 
test.SetCellFormula($"SUM(E1:E6)"); // FAILS 
test.SetCellFormula($"E1 + E2 + E3"); // FAILS 

XSSFFormulaEvaluator.EvaluateAllFormulaCells(workbook); 

workbook.Write(TheStream); 

Die GitHub Lage is here.

+0

siehe diesen Link https://stackoverflow.com/questions/25077009/npo-i-setcellformula-custom-formula-in-vba. Entferne $ von SetCellFormula ($ "SUM (E1: E6)"); –

+0

@kumarchandraketu Das '$' ist ein Präfix für die Formatierung von C# -Strings und beeinflusst dies in keiner Weise. Ich nahm es heraus und bekam das gleiche Ergebnis. Die Dokumentationsverknüpfung von dem SO-Link, den du erwähnst, zeigt auch nicht, was ich tue und gab wirklich keine Einsichten darüber, was ich vermisse oder was ich falsch mache. – Grandizer

+0

Ich schlage vor, Sie SetCellFormula ("= SUMME (E1: E6)"); oder SetCellFormula ($ "= SUMME (E1: E6)"); Manchmal funktioniert die Syntax aus der Dokumentation nicht in NPOI, daher müssen Sie vielleicht Ihre Problemumgehung mit hit or miss ausprobieren :) –

Antwort

1

Nach einem Beitrag zu here fand ich heraus, dass es ein Update von 1.0.0 auf 1.0.1 und das erlaubte die Formel! Ich habe nicht nach Updates gesucht, da ich gestern das Paket heruntergeladen habe. Aber das ist bei mir, es ist .Net-Kern und bewegt sich daher ziemlich schnell.