Java 导出数据库数据到Excel表格中
1、需求
- 将用户id、姓名及其各类型假期剩余天数导出到数据库中;
- 将Excel文件命名为用户假期信息表-2019-06-10样式的,日期是当天日期;
1.1、设计导出文件外观
1.2、设计导出内容样式
前端的基本上不用写了,涉及到的关键点不算多从后台controller开始写;
2、控制层 Controller
2.1、exportHolidy方法
详细注解在代码中
@FbootApiButton(note = "导出")
@RequiresPermissions("oa:userholidy:exportHolidy")
@FbootLog(value = "导出员工假期数", module = "OaUserHolidy")
@GetMapping("/exportHolidy")
@ResponseBody
public void exportHolidy(
//从前台传递来的有用户姓名、性别、状态,这是为了方便查询导出对应人员的假期信息的
@RequestParam("userName") String userName,
@RequestParam("gender") Integer gender,
@RequestParam("status") Integer status,
HttpServletResponse response
) {
OutputStream outputStream = null;
try {
@SuppressWarnings("resource")
// 在此处创建wk,是excel的文档对象,用于接收service层处理后的数据;
HSSFWorkbook wk = new HSSFWorkbook();
// 创建一个查询参数对象,此对象代码如下UserHolidyParam 代码所示;
UserHolidyParam param = new UserHolidyParam();
// 将查询用户的查询条件参数放入到查询参数对象中
param.setName(userName);
param.setGender(gender);
param.setStatus(status);
// 调用service层的进一步处理方法,将查询参数对象以及response返回对象传递过去
wk = this.service.exportAllHolidyInfo(response, param);
// 给生成的Excel表格命名
String str = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String name = "用户假期信息表-"+ str + ".xls";
response.setCharacterEncoding("UTF-8");
response.s