いくつかの検証を行って Excel ファイルを生成しようとしています。それを実装するためのpoi dev ガイドを読みました。実装中に例外が発生しました ( String literals in formulas can't be bigger than 255 characters ASCII
)。POI は、すべてのドロップダウン オプションを '0' で区切られた文字列に連結し、その長さをチェックして例外を与えます。:(
POI 3.8ベータ5の最新バージョンを使用して
います。
私のコードは次のとおりです。
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFRow row = sheet.createRow((short) 0);
//CellRangeAddressList from org.apache.poi.ss.util package
CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0);
DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(getCountries());
DataValidation dataValidation = new HSSFDataValidation(addressList, dvConstraint);
dataValidation.setSuppressDropDownArrow(false);
sheet.addValidationData(dataValidation);
FileOutputStream fileOut = new FileOutputStream("c:\\test.xls");
wb.write(fileOut);
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
その後、私はこのコードで XSSFWorkBook を試しました:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
DataValidationHelper validationHelper = new XSSFDataValidationHelper(sheet);
DataValidationConstraint constraint = validationHelper.createExplicitListConstraint(getCountries());
CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0);
DataValidation dataValidation = validationHelper.createValidation(constraint, addressList);
dataValidation.setErrorStyle(DataValidation.ErrorStyle.STOP);
dataValidation.setSuppressDropDownArrow(true);
sheet.addValidationData(dataValidation);
FileOutputStream fileOut = new FileOutputStream("c:\\test.xlsx");
残念ながら、1 つのセルにコンマで区切られた長い文字列が含まれる結果は成功しません。
しかし、Excel で手動で、この長い国リストを使用してドロップダウン セルを作成できます。
長い文字列でドロップダウンを生成する方法はありますか、または API はサポートしていませんか?