Java导出数据库数据到Excel表格三级动态表头
1 控制层代码
//测试生成表头
@RequestMapping(value = "/export", method = RequestMethod.GET)
public void export (HttpServletResponse response) {
OutputStream outputStream = null;
try {
// 在此处创建wk,是excel的文档对象,用于接收service层处理后的数据;
HSSFWorkbook wk = new HSSFWorkbook();
// 创建一个查询参数对象,此对象代码如下UserHolidyParam 代码所示;
// 调用service层的进一步处理方法,将查询参数对象以及response返回对象传递过去
wk = userService.test();
// 给生成的Excel表格命名
String str = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String name = "用户假期信息表-"+ str + ".xls";
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + new String(name.getBytes(),"iso-8859-1"));// 默认Excel名称
// 将返回对象中的需要输出的数据取出
outputStream = response.getOutputStream();
// 使用write方法写入到Excel对象中去
wk.write(outputStream);
// 关闭Excel对象
wk.close();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}