本工作簿中检测到一个或多个无效名称。 这些无效名称已被更改为#REF
试图将单元格('CD')的值引用到特定的单元格,在OpenOffice中正常工作,但不适用于ms excel
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“公式” – >“名称pipe理器”显示有效的名称+“循环计数器值”,但参考值为“=#NA!”。
通过查看您的代码。我发现,虽然您指的单元格只使用$CD1$
(CD是没有sheetname的示例单元格地址)。
当名称是Global(没有工作表参考)时,在OpenOffice Org中假设“当前”工作表(当前到名称的引用)。 MS Excel 2007+不这样做。 它需要图纸参考(Sheet1!name)
。
你的代码应该是这样的。
houseHoldRelationNamedCell.setRefersToFormula("'sheetname'!$"+ CellReference.convertNumToColString(hiddenCellColumn) +"$1");