2017-08-31 151 views
0

我想创建一个简单的公式SUM(E1:E6),但不断得到Value cannot be null. Parameter name: stream。我已经把=放在前面,甚至使小写没有成功。我能够上班的公式是1 + 3 + 8。然后我尝试E1 + E2 + E3 + E4 + E5 + E6,并给出了相同的错误。NPOI核心 - 公式问题

这里是我的代码:

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); 

GitHub的位置is here

+0

看到这个链接https://stackoverflow.com/questions/25077009/npoi-setcellformula-custom-formula-in-vba。从SetCellFormula中删除$($“SUM(E1:E6)”); –

+0

@kumarchandraketu'$'是C#字符串格式的前缀,并不会以任何方式影响它。我拿出来,得到了同样的结果。您提到的SO链接中的文档链接也没有显示我正在做什么,并且没有真正了解我错过或做错了什么。 – Grandizer

+0

我建议你尝试SetCellFormula(“= SUM(E1:E6)”);或SetCellFormula($“= SUM(E1:E6)”);有时,NPOI中的文档语法不起作用,因此您可能需要尝试通过命中或未命中尝试解决方法:) –

回答

1

发布到here后,我发现有一个从1.0.0更新到1.0.1,并允许公式!看到我昨天下载了软件包,没有检查更新。但是,就我而言,它是.Net核心,因此正在迅速发展。