与标题一样:当我尝试使用XSSFDataValidationHelper的方法createFormulaListConstraint(“...”)添加DataValidationConstraint时,根据弹出窗口我尝试在MS Excel中打开它时,excel文件的内容不正确。
当我使用excel创建数据验证时,此公式按预期工作:
=OFFSET(Sites!$A$2;0;0;COUNTA(Sites!$A:$A)- 1;1)
现在我正在尝试使用apache poi 3.8:
XSSFDataValidationConstraint siteNamesConstraint = (XSSFDataValidationConstraint) dvHelper.createFormulaListConstraint("=OFFSET('Sites'!$A$2;0;0;COUNTA('Sites'!$A:$A)- 1;1)");
打开excel文件时出现错误。
我也尝试过其他公式:
这些似乎都不正确。
之前我所拥有的只是'网站'!$ A $ 2:$ A $ 100这个有效,但它包含了结果中的空白值,这不是我需要的。
我在这里做错了还是有其他方法不在列表中包含空白值?
答案 0 :(得分:4)
叹了口气,我在发布这个问题后5分钟找到了解决方案。
在excel“;”中键入公式时在POI中用作函数的分隔符,但是分隔符是“,”。
我在尝试以下代码时发现了这一点:
Name namedRange = wb.createName();
namedRange.setNameName("sites");
namedRange.setRefersToFormula("OFFSET('Sites'!$A$2,0,0,COUNTA('Sites'!$A:$A)- 1,1)");
然后用它来表示:
(XSSFDataValidationConstraint) dvHelper.createFormulaListConstraint("sites");