之前写过通过 《关于JAVA 用POI 导出Excel
》,下面写关于通过excel模板导出excel的方法。至于准备工作这里面就很简单,JAR包和上面的一样。文件代码也很少,本人觉得这个事非常简单的导出EXCEL,通过excel模板导出的样式可以和要求的模板样式基本上一直。需要改进的地方,可以自己设置一下excel样式。
代码如下:
try
{
File fi = new File(request.getSession().getServletContext().getRealPath("/") + "WEB-INF/excel/excel.xls");
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fi));
String excelName = fi.getName();
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFCell cell4Row2Col = null;
HSSFCell cell4Row3Col = null;
HSSFCellStyle cellStyle = this.getBodyStyle(wb);
List
> listData = new ArrayList
>();
listData = excelService.queryExcelDate();
for (int i = 0; i < listData.size(); i++)
{
Map map = (Map) listData.get(i);
HSSFRow bodyRow = sheet.createRow(4 + i);
cell4Row2Col = bodyRow.createCell(2);
cell4Row2Col = sheet.getRow(4 + i).getCell(2);
cell4Row2Col.setCellStyle(cellStyle);
cell4Row2Col.setCellValue(map.get("ID").toString());
cell4Row2Col = bodyRow.createCell(3);
cell4Row3Col = sheet.getRow(4 + i).getCell(3);
cell4Row3Col.setCellStyle(cellStyle);
cell4Row3Col.setCellValue(map.get("MONEY").toString());
}
response.setContentType("application/binary;charset=ISO8859_1");
// String fileName = new String(("最外层EXCEL文件名").getBytes(), "ISO8859_1");
// response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".xls");
response.setHeader("Content-disposition", "attachment; filename=" + excelName);
ServletOutputStream outputStream = response.getOutputStream();
// FileOutputStream out = new FileOutputStream("D:/"+excelName);
wb.write(outputStream);
outputStream.close();
}
catch (IOException e)
{
e.printStackTrace();
}
public HSSFCellStyle getBodyStyle(HSSFWorkbook wb) {
// 创建单元格样式
HSSFCellStyle cellStyle = wb.createCellStyle();
// 设置单元格的背景颜色为淡蓝色
// cellStyle.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
// cellStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
// 设置单元格居中对齐
// 设置单元格内容水平对其方式
// XSSFCellStyle.ALIGN_CENTER 居中对齐
// XSSFCellStyle.ALIGN_LEFT 左对齐
// XSSFCellStyle.ALIGN_RIGHT 右对齐 cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 设置单元格垂直居中对齐
// 设置单元格内容垂直对其方式
// XSSFCellStyle.VERTICAL_TOP 上对齐
// XSSFCellStyle.VERTICAL_CENTER 中对齐
// XSSFCellStyle.VERTICAL_BOTTOM 下对齐 cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
// 创建单元格内容显示不下时自动换行
cellStyle.setWrapText(true);
// 设置单元格字体样式
HSSFFont font = wb.createFont();
// 设置字体加粗
font.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
font.setFontName("宋体");
font.setFontHeight((short) 200);
cellStyle.setFont(font);
// 设置单元格边框为细线条
// 设置单元格边框样式
// CellStyle.BORDER_DOUBLE 双边线
// CellStyle.BORDER_THIN 细边线
// CellStyle.BORDER_MEDIUM 中等边线
// CellStyle.BORDER_DASHED 虚线边线
// CellStyle.BORDER_HAIR 小圆点虚线边线
// CellStyle.BORDER_THICK 粗边线
cellStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);
return cellStyle;
}