java 导出EXcel public static SXSSFWorkbook getWorkbook2007(String sheetName, String[] titles, List<String[]> values, SXSSFWorkbook wb) { if (wb == null) { wb = new SXSSFWorkbook(); } // 第二步,在workbook中添加一个sheet,对应Excel文
时间: 2023-12-26 14:04:35 浏览: 82
件中的sheet
SXSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,老版本的poi对sheet的行列有限制
SXSSFRow row = sheet.createRow(0);
// 第四步,创建单元格,并设置表头,设置表头居中
SXSSFCellStyle style = wb.createCellStyle();
// 设置这些样式
style.setFillForegroundColor(HSSFColorPredefined.WHITE.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setBorderBottom(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);
style.setBorderTop(BorderStyle.THIN);
style.setAlignment(HorizontalAlignment.CENTER);
// 生成一个字体
XSSFFont font = wb.createFont();
font.setColor(HSSFColorPredefined.BLACK.getIndex());
font.setFontHeightInPoints((short) 12);
font.setBold(true);
// 把字体应用到当前的样式
style.setFont(font);
//设置列宽
int[] columnWidth = new int[titles.length];
for (int i = 0; i < titles.length; i++) {
columnWidth[i] = titles[i].getBytes().length * 256;
sheet.setColumnWidth(i, columnWidth[i] < 3000 ? 3000 : columnWidth[i]);
SXSSFCell cell = row.createCell(i);
cell.setCellValue(titles[i]);
cell.setCellStyle(style);
}
// 第五步,写入实体数据,实际应用中这些数据从数据库得到,
for (int i = 0; i < values.size(); i++) {
row = sheet.createRow(i + 1);
String[] value = values.get(i);
// 第四步,创建单元格,并设置值
for (int j = 0; j < value.length; j++) {
SXSSFCell cell = row.createCell(j);
// 设置单元格内容为字符串类型
cell.setCellValue(value[j]);
}
}
return wb;
}
这个方法是一个使用POI库导出Excel的方法,它能够创建一个Workbook对象,并在其中创建一个sheet,设置表头,设置列宽,将实体数据写入Excel表格中,并返回创建的Workbook对象。它支持导出大量数据,因为它使用了SXSSFWorkbook,可以在内存中缓存部分数据,而不是一次性写入Excel文件,从而避免了OutOfMemoryError异常。
阅读全文