小编use*_*136的帖子

Excel 下拉使用 DataValidationHelper (POI)

我正在使用 SXSSFWorkbook(流)生成一个 100 万行的 excel 文件(.xlsx)。一列必须包含一个包含 4-5 个值的下拉列表。我能够生成这个,但我有两个问题-

  1. excel需要很多时间来生成。7 分钟有下拉菜单,11 秒没有 250,000 行。
  2. 文件一旦生成就无法打开,因为它要求恢复最终会失败的数据。该消息显示“在文件 D:\Test.xlsx 中检测到错误已删除功能:来自 /xl/worksheets/sheet2.xml 部分的数据验证”

下面是代码片段

DataValidationHelper validationHelper = sh.getDataValidationHelper();
CellRangeAddressList addressList = new CellRangeAddressList(0, sh.getLastRowNum(), cellnum, cellnum);
DataValidationConstraint constraint = validationHelper.createExplicitListConstraint(new String[] { "High risk", "Medium risk", "Low risk", "No risk" });
DataValidation  dataValidation = validationHelper.createValidation(constraint, addressList);
dataValidation.setSuppressDropDownArrow(true);
sh.addValidationData(dataValidation);
Run Code Online (Sandbox Code Playgroud)

请建议我更好的解决方案。

java excel apache-poi

5
推荐指数
1
解决办法
1573
查看次数

标签 统计

apache-poi ×1

excel ×1

java ×1