尝试将值从单元格(' 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' Formulas' - > '名称经理'显示有效名称+' loopCounter值'但参考值为' =#NA!'
答案 0 :(得分:3)
通过查看您的代码。我发现,当您引用的单元格仅使用$CD1$
时(CD是没有工作表名称的示例单元格地址)。
当名称为Global(无表格参考)时,"当前"在OpenOffice组织中假定工作表(当前对名称的引用)。 MS Excel 2007+不会这样做。它需要工作表参考(Sheet1!name)
。
您的代码应该是这样的。
houseHoldRelationNamedCell.setRefersToFormula("'sheetname'!$"+ CellReference.convertNumToColString(hiddenCellColumn) +"$1");