Java 在此工作簿中检测到一个或多个无效名称。这些无效名称已更改为#REF
尝试将单元格(“CD”)中的值引用到特定单元格,在OpenOffice中可以正常工作,但在ms excel中不起作用Java 在此工作簿中检测到一个或多个无效名称。这些无效名称已更改为#REF,java,excel,apache-poi,openoffice-calc,Java,Excel,Apache Poi,Openoffice Calc,尝试将单元格(“CD”)中的值引用到特定单元格,在OpenOffice中可以正常工作,但在ms excel中不起作用 for () { Name houseHoldRelationNamedCell = workbook.createName(); houseHoldRelationNamedCell.setNameName("name"+ loopCounter); houseHoldRelationNamedCell.setRe
for () {
Name houseHoldRelationNamedCell = workbook.createName();
houseHoldRelationNamedCell.setNameName("name"+ loopCounter);
houseHoldRelationNamedCell.setRefersToFormula("$"+ CellReference.convertNumToColString(hiddenCellColumn) +"$1");
DVConstraint constraintHouseholdRltn = DVConstraint.createFormulaListConstraint("name"+ beneficiaryRelationVO.getId());
CellRangeAddressList addressListHouseholdRltn = new CellRangeAddressList(row, totalRows, column-1, column-1);
HSSFDataValidation validationHouseholdRltn = new HSSFDataValidation(addressListHouseholdRltn, constraintHouseholdRltn);
validationHouseholdRltn.setSuppressDropDownArrow(false);
sheet.addValidationData(validationHouseholdRltn);
loopCounter++;
}
Excel错误:“在此工作簿中检测到一个或多个无效名称。这些无效名称已更改为#REF!”
在ms excel中,“公式”->“名称管理器”显示有效名称+“循环计数器值”,但引用值为“=#NA!” 通过查看您的代码。我发现,当您引用单元格时,您只使用了
$CD1$
(CD是没有sheetname的示例单元格地址)
当名称为全局(无工作表引用)时,OpenOffice组织中假定为“当前”工作表(当前为名称引用)。MS Excel 2007+不会这样做。它需要图纸参考(图纸1!名称)
您的代码应该是这样的
houseHoldRelationNamedCell.setRefersToFormula("'sheetname'!$"+ CellReference.convertNumToColString(hiddenCellColumn) +"$1");
哪个MS excel版本???@SubinCPoonamgode MS excel 2013