/** * 批量导出 * * @param data * @throws FileNotFoundException */ public void transform(Map<String, Object> data) throws FileNotFoundException { FileInputStream templateIs = new FileInputStream(template); try { XSSFWorkbook bookTmp = (XSSFWorkbook) transformer.transformXLS(templateIs, data); bookTmp.setSheetName(0, "第" + count + "页"); if (count == 1) { book = new SXSSFWorkbook(bookTmp); } else { Sheet newSheet = book.createSheet(bookTmp.getSheetName(0)); Sheet sheet = bookTmp.getSheetAt(0); Util.copySheets(newSheet, sheet); } count++; } catch (ParsePropertyException e) { e.printStackTrace(); } catch (InvalidFormatException e) { e.printStackTrace(); } finally { try { templateIs.close(); } catch (IOException e) { e.printStackTrace(); } } }
public void write(String destFile) throws IOException { File f = new File(destFile); if (!f.exists()) { f.createNewFile(); } Util.writeToFile(destFile, book); }
CellStyle duplicateStyle(Cell cell, String key) { if (rowStyles.containsKey(key)) { return (CellStyle) rowStyles.get(key); } CellStyle newStyle = Util.duplicateStyle( cell.getRow().getSheet().getPoiWorkbook(), cell.getPoiCell().getCellStyle()); rowStyles.put(key, newStyle); return newStyle; }
public void writeFormulas(FormulaResolver formulaResolver) { Set sheetNames = sheetFormulasMap.keySet(); for (Iterator iterator = sheetNames.iterator(); iterator.hasNext(); ) { String sheetName = (String) iterator.next(); List formulas = (List) sheetFormulasMap.get(sheetName); for (int i = 0; i < formulas.size(); i++) { Formula formula = (Formula) formulas.get(i); String formulaString = formulaResolver.resolve(formula, null); if (formulaString != null) { Cell hssfCell = Util.getOrCreateCell( formula.getSheet().getPoiSheet(), formula.getRowNum(), formula.getCellNum()); try { hssfCell.setCellFormula(formulaString); } catch (RuntimeException e) { log.error("Can't set formula: " + formulaString, e); // hssfCell.setCellType( Cell.CELL_TYPE_BLANK ); throw new RuntimeException("Can't set formula: " + formulaString, e); } } } } }