[英]Create dataValidation from named list in different sheet
我正在嘗試創建一個DataValidation對象,其中的List Constraint是一個范圍內的單個連續列的名稱....作為我傳遞給createFormulaListConstraint()的參數的列表與我想要的位置在不同的表中顯示dataValidation。 以下是我到目前為止擁有的代碼,當我嘗試運行它時,發生FormulaParseException:正在拋出當前工作簿中不存在的指定名稱范圍 :
Name name = dctmWorkSheet.getWorkbook().createName();
name.setSheetIndex(1);
name.setNameName(cell.getStringCellValue());
name.setRefersToFormula(getRangeRefersToFormula(valueAssSheet, firstRow, rowIndex, insertCol));
validationHelper = dctmWorkSheet.getDataValidationHelper();
//------ THIS IS THE LINE RESPONSIBLE FOR THE EXCEPTION -------
constraint = validationHelper.createFormulaListConstraint(name.getNameName());
dataValidation = validationHelper.createValidation(constraint, cral);
dataValidation.setEmptyCellAllowed(true);
dataValidation.setShowErrorBox(true);
dataValidation.setErrorStyle(DataValidation.ErrorStyle.STOP);
dataValidation.createErrorBox("Error", "Please use Pick List Value");
dctmWorkSheet.addValidationData(dataValidation);
感謝您的幫助或反饋...
通過在sheetIndex(0)中創建一個附加名稱並將其引用到sheetIndex(1)中的名稱,實際上設法解決了我的問題。以下是根據需要工作的代碼:
Name name = dctmWorkSheet.getWorkbook().createName();
name.setSheetIndex(1);
name.setNameName(cell.getStringCellValue());
name.setRefersToFormula(getRangeRefersToFormula(valueAssSheet, firstRow, rowIndex, insertCol));
Name name2 = dctmWorkSheet.getWorkbook().createName();
name2.setSheetIndex(0);
name2.setNameName(name.getNameName());
name2.setRefersToFormula(name.getRefersToFormula());
validationHelper = dctmWorkSheet.getDataValidationHelper();
constraint = validationHelper.createFormulaListConstraint(name2.getNameName());
dataValidation = validationHelper.createValidation(constraint, cral);
dataValidation.setEmptyCellAllowed(true);
dataValidation.setShowErrorBox(true);
dataValidation.setErrorStyle(DataValidation.ErrorStyle.STOP);
dataValidation.createErrorBox("Error", "Please use Pick List Value");
dctmWorkSheet.addValidationData(dataValidation);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.