武汉网站托管公司/seo是什么意思?
原因:
POI操作Excel中,导出的数据不是很大时,则不会有问题,而数据很多或者比较多时,
就会报以下的错误,是由于cell styles太多create造成
解决方法:
一般可以把cellstyle设置放到循环外面或者将setCellStyle注释掉
private static void xmlToExcel(FileOutputStream fos, OutputStream os, Document doc) {try {HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("sheet1");sheet.setColumnWidth(0, 4000);sheet.setColumnWidth(1, 3500);List<Element> columns = doc.selectNodes("/data/head/colum");Map<String, SqlColumnType> headMap = new HashMap();int rownum = 0;int cellnum = 0;HSSFRow trows = sheet.createRow(rownum);rownum = rownum + 1;trows.setHeight((short)800);HSSFCell title = trows.createCell(0);trows = sheet.createRow(rownum);++rownum;trows.setHeight((short)500);for(Iterator var11 = columns.iterator(); var11.hasNext(); ++cellnum) {Element column = (Element)var11.next();SqlColumnType sct = new SqlColumnType(column.attributeValue("name"));String type = column.attributeValue("typecode");if (!"".equals(type)) {sct.setColumnType(Integer.valueOf(type));}sct.setColumnTypeName(column.attributeValue("type"));sct.setLocalText(column.getText());sct.setSign(cellnum + "");headMap.put(sct.getColumnName(), sct);HSSFCell cell = trows.createCell(cellnum);//cell.setCellStyle(JxStyle.getHSSHeadStyle(wb));cell.setCellValue(sct.getLocalText());switch(sct.getColumnType()) {case 91:case 93:sheet.setColumnWidth(cellnum, 5000);break;default:sheet.setColumnWidth(cellnum, 4000);}}List<Element> data = doc.selectNodes("/data/rows");Iterator var27 = data.iterator();label70:while(var27.hasNext()) {Element rows = (Element)var27.next();HSSFRow drows = sheet.createRow(rownum);++rownum;drows.setHeight((short)500);List<Element> cells = rows.selectNodes("cell");Iterator var16 = cells.iterator();while(true) {SqlColumnType sct;String text;do {do {if (!var16.hasNext()) {continue label70;}Element cellel = (Element)var16.next();String name = cellel.attributeValue("name");sct = (SqlColumnType)headMap.get(name);text = cellel.getText();} while("".equals(text));} while(sct == null);HSSFCell cell = drows.createCell(Integer.valueOf(sct.getSign()));//cell.setCellStyle(JxStyle.getHSSDataStyle(wb));try {if (sct.getColumnType() != 2 && sct.getColumnType() != 4) {if (sct.getColumnType() != 91 && sct.getColumnType() != 93) {cell.setCellValue(text);} else {cell.setCellValue(DateUtil.toDate(text));//cell.setCellStyle(JxStyle.getHSSDateStyle(wb));}} else {cell.setCellValue(Double.valueOf(text));}} catch (Exception var23) {cell.setCellValue(text + "");}}}sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, headMap.size() - 1));title.setCellValue(doc.getRootElement().attributeValue("title"));//title.setCellStyle(JxStyle.getHSSTitileStyle(wb));if (fos != null) {os = fos;}wb.write((OutputStream)os);((OutputStream)os).close();} catch (Exception var24) {log.error("ExcelExp xmlToExcel error:" + var24.getMessage(), var24);}}