列表导出方法简单实现,导出格式可以根据返回数据具体更改
public ResultData exportUserList(UserSearchRequest userSearchRequest, HttpServletResponse response) {
ResultData resultData = new ResultData();
// 用户数据
List<UserSearchVo> userSearchVos = userDao.userList(userSearchRequest);
PageInfo<UserSearchVo> list = new PageInfo<>(userSearchVos);
if (list.getTotal() > 0) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// excel标题
String[] title = {"ID", "头像", "姓名", "性别", "手机号", "用户类型", "用户等级", "余额", "佣金余额", "注册时间"};
// excel文件名
String fileName = "User" + System.currentTimeMillis() + ".xls";
// sheet名
String sheetName = "User";
// 将数据转换成String [][] 二维数组(具体情况根据自身需求定)
String[][] content = new String[userSearchVos.size()][title.length];
int i = 0;
for (UserSearchVo vo : userSearchVos) {
content[i][0] = String.valueOf(vo.getUid());
content[i][1] = String.valueOf(vo.getAvatar());
content[i][2] = String.valueOf(vo.getNickname());
content[i][3] = String.valueOf(vo.getSex() == 1 ? "男" : "女");
content[i][4] = String.valueOf(vo.getPhone());
content[i][5] = String.valueOf(vo.getUserType() == 1 ? "用户" : "商户");
content[i][6] = String.valueOf(vo.getStatus() == 1 ? "普通用户" : vo.getUserLevel().getLevel());
content[i][7] = String.valueOf(vo.getNowMoney());
content[i][8] = String.valueOf(vo.getCommission());
content[i][9] = String.valueOf(simpleDateFormat.format(vo.getRegisterDate()));
i++;
}
//创建HSSFWorkbook
HSSFWorkbook workbook = ExcelUtil.getHSSFWorkbook(sheetName, title, content, null);
try {
//输出Excel文件
OutputStream output = response.getOutputStream();
response.reset();
//中文名称要进行编码处理
response
.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("GB2312"), "ISO8859-1"));
response.setContentType("application/x-xls");
workbook.write(output);
output.close();
} catch (IOException e) {
e.printStackTrace();
}
resultData.setMark("0");
resultData.setTip("导出成功");
} else {
resultData.setMark("1");
resultData.setTip("无数据");
}
return resultData;
}