いくつかのオプションを含むドロップダウン リストがあり、たとえば 2 つのセルがあります。私が必要とするのは、選択したオプションに関して、セルの1つを編集可能に、もう1つを読み取り専用に、またはその逆にすることです。
FileOutputStream fos;
try {
fos = new FileOutputStream("D:\\POIXls.xls");
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("new Sheet");
DataValidationHelper dvHelper = sheet.getDataValidationHelper();
DataValidationConstraint dvConstraint =
dvHelper.createExplicitListConstraint(new String[] { "cell 1 edit","cell 2 edit"});
CellRangeAddressList addressList = new CellRangeAddressList(0, 2, 0, 0);
DataValidation validation = dvHelper.createValidation(dvConstraint, addressList);
if (validation instanceof XSSFDataValidation) {
validation.setSuppressDropDownArrow(true);
validation.setShowErrorBox(true);
} else {
validation.setSuppressDropDownArrow(false);
}
sheet.addValidationData(validation);
workbook.write(fos);
fos.flush();
fos.close();
}catch(Exception e){//catch code}
そのxlsファイルを作成して、ユーザーの選択に従ってこれらのセルを編集可能/読み取り専用にする方法を知る必要があります。VB コードも役立つ場合があります。