Advertisement
Guest User

xlsx

a guest
Dec 23rd, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1. public void createExcel(OutputStream os) {
  2.  
  3.         try (InputStream is = new ClassPathResource("templates/" + template).getInputStream()) {
  4.  
  5.             XSSFWorkbook wb = new XSSFWorkbook(is);
  6.             // PoiTransformer transformer =
  7.             // PoiTransformer.createSxssfTransformer(wb);
  8.  
  9.             XSSFSheet sheet = wb.getSheet("Sheet1");
  10.             int lastRow = wb.getSpreadsheetVersion().getLastRowIndex();
  11.             int sheetIdx = 1;
  12.             for (ValidationRule rule : rules) {
  13.                 if (rule.validationDatas.length == 0)
  14.                     continue;
  15.                 XSSFSheet hidden = wb.createSheet("hidden" + sheetIdx);
  16.                 for (int i = 0, length = rule.validationDatas.length; i < length; i++) {
  17.                     String name = rule.validationDatas[i];
  18.                     Row row = hidden.createRow(i);
  19.                     Cell cell = row.createCell(0);
  20.                     cell.setCellValue(name);
  21.                 }
  22.                 XSSFName namedCell = wb.createName();
  23.                 namedCell.setNameName("hidden" + sheetIdx);
  24.                 namedCell.setRefersToFormula("hidden" + sheetIdx + "!$A$1:$A$" + rule.validationDatas.length);
  25.                 XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet);
  26.                 XSSFDataValidationConstraint constraint = (XSSFDataValidationConstraint) dvHelper
  27.                         .createFormulaListConstraint("hidden" + sheetIdx);
  28.  
  29.                 wb.setSheetHidden(sheetIdx++, true);
  30.                 createListBox(dvHelper, sheet, rule.start_validation_row, rule.start_validation_col, lastRow,
  31.                         rule.validationDatas, constraint);
  32.             }
  33.             wb.write(os);
  34.  
  35.         } catch (IOException e) {
  36.             // TODO Auto-generated catch block
  37.             e.printStackTrace();
  38.         }
  39.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement