方法:
1、引入org.apache.poi包
2、创建HSSFWorkbook对象
3、创建HSSFSheet对象
4、组装表格,生成HSSFRow对象
5、生成输出流,实现excel的下载
6、关闭流,HSSFWork对象也要关闭
/**
* 生成excel
*/
private boolean generatorXls(String fileName, List list, Map dataMap) {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet(fileName);
boolean success = true;
//组装表格
for (int row = 0; row < list.size() + 1; row++) {
HSSFRow sheetRow = sheet.createRow(row);
if (0 == row) {
for (int column = 0; column < title.length; column++) {
sheetRow.createCell(column).setCellValue(title[column]);
}
} else {
//内容
Object o = list.get(row - 1);
Map listMap = BeanMapUtils.bean2Map(o);
for (int column = 0; column < body.length; column++) {
if(null!=listMap.get(body[column])){
sheetRow.createCell(column).setCellValue(listMap.get(body[column]).toString());
}
}
}
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
//转换成字节数组,防止直接写入磁盘,导致两次IO
workbook.write(os);
byte[] contentsBytes = os.toByteArray();
dataMap.put("contents", contentsBytes);
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
success = false;
} finally {
IOUtils.close(os);
Util.close(workbook);
}
return success;
}