0

リスト制約が範囲指定された単一の連続した列の名前である dataValidation オブジェクトを作成しようとしています.... 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);

ヘルプやフィードバックをありがとう......

4

1 に答える 1

0

実際には、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);
于 2013-07-11T16:21:05.713 に答える