1

ユーザーがセル A1:A10 に有効な数値を入力したかどうかを確認する必要があります。Excel では、セルを選択してからカスタム バリデータを作成し、数式を =isNumber("$A$1:$A10") に設定します。POI を使用してこれを実行しようとすると、結び目ができてしまいます。

CellRangeAddressList addressList = new CellRangeAddressList(0, 10, 0, 0);
        XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet);
        DataValidationConstraint customConstraint = dvHelper.createCustomConstraint("isNumber(\"$A$0:$A$10\"");
        XSSFDataValidation validation = (XSSFDataValidation)dvHelper.createValidation(customConstraint, addressList);
        validation.setShowErrorBox(true);
        sheet.addValidationData(validation);

これをExcelで開こうとすると、エラーが発生し、Excelは検証を無効にします

前もって感謝します-アニッシュ

4

2 に答える 2

0

SuperCSVを使用して検証を実行するよりも、そのExcelをcsvに変換できます。長さはありますが、より簡単です。

于 2013-08-23T08:39:43.647 に答える
0
CellReference crStartCell = new CellReference(startRow, column, true, true); // 0-based row and column index
CellReference crEndCell = new CellReference(endRow, column, true, true);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createCustomConstraint("ISNUMBER("+crStartCell.formatAsString()+":"+crEndCell.formatAsString() +")");
于 2013-08-22T14:48:22.567 に答える