Tôi đang cố gắng tạo tệp excel có một số xác thực, tôi đã đọc poi dev guides để triển khai. Trong quá trình thực hiện, tôi có ngoại lệ (String literals in formulas can't be bigger than 255 characters ASCII
). POI liên kết tất cả các tùy chọn thả xuống thành chuỗi '0' bị xóa và kiểm tra độ dài của nó và cho tôi ngoại lệ. :(
Tôi đang sử dụng phiên bản mới nhất của POI 3.8 beta 5.
Và mã của tôi là:Giới hạn khi tạo danh sách thả xuống excel với Apache POI
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();
}
Sau đó tôi đã thử với XSSFWorkBook với mã này:
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");
Thật không may, không có thành công với kết quả như vậy là dấu phẩy delimenated chuỗi dài trong một tế bào:
Nhưng thủ công trong excel, tôi có thể tạo các ô thả xuống với danh sách quốc gia dài này.
Có cách nào tạo dropdown với chuỗi dài hay API không hỗ trợ?
âm thanh như một lỗi/giới hạn trong triển khai POI, có thể bạn nên báo cáo lỗi này tại http://poi.apache.org/ – centic