Excel下拉使用DataValidationHelper(POI)

我使用SXSSFWorkbook(stream)生成一百万行的Excel文件(.xlsx)。 一列必须包含4-5个值的下拉菜单。 我能够产生这个,但我有两个问题 –

  1. excel花费很多时间来生成。 7分钟下拉,11万秒没有25万行。
  2. 无法打开文件,因为它要求恢复最终失败的数据。 该消息说:“在文件D:\ Test.xlsx中检测到错误已删除的function:从/xl/worksheets/sheet2.xml部分进行数据validation”

以下是代码片段

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); 

请build议我更好的解决scheme。