java导出excel表格_java导出Excel表格

packagecom.lin.controller;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjavax.annotation.Resource;importjavax.servlet.ServletContext;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.multipart.MultipartFile;importorg.springframework.web.multipart.MultipartHttpServletRequest;importorg.springframework.web.multipart.MultipartResolver;importorg.springframework.web.multipart.commons.CommonsMultipartResolver;importcom.lin.domain.data.ResData;importcom.lin.domain.data.ResListData;importcom.lin.domain.error.Error;importcom.lin.domain.sysUser.SysUser;importcom.lin.service.RoleService;importcom.lin.service.SysUserService;importcom.lin.utils.Aes;importcom.lin.utils.DateTimeUtils;importcom.lin.utils.ExcelUtil;importcom.lin.utils.ResponseUtils;importcom.lin.utils.Upload;importcom.lin.utils.Utils;importcom.sun.jersey.api.client.Client;importnet.sf.json.JSONObject;/*** 后台用户-controller

*@authorlibo*/@Controller

@RequestMapping("/sysUser")public classSysUserController {

@ResourceprivateSysUserService sysUserService;

@ResourceprivateRoleService rService;

@Value(value="${headImgPath}") //后台图片保存地址

privateString headImgPath;

@Value(value="${uploadHost}")private String uploadHost; //项目host路径

@Value(value="${sysUserDefImg}")private String sysUserDefImg; //系统用户默认头像

/*** 导出系统用户数据

*@paramreq

*@paramres

*@paramname

*@paramphone

*@paramemail

*@paramroleId

*@paramcreateTimeStart

*@paramcreateTimeEnd

*@paramstatus

*@paramdepartmentId

*@throwsIOException*/@ResponseBody

@RequestMapping(value="/exportSysUsers.do", method=RequestMethod.GET)public voidexportSysUsers(HttpServletRequest req,HttpServletResponse res,

String name, String phone, String email, Integer roleId, String createTimeStart, String createTimeEnd,

Integer status, Integer departmentId)throwsIOException{

Map params = new HashMap();

params.put("name", "".equals(name) || null == name ? null: name);

params.put("phone", "".equals(phone) || null == phone ? null: phone);

params.put("email", "".equals(email) || null == email ? null: email);

params.put("roleId", "".equals(roleId) || null == roleId ? null: roleId);

params.put("createTimeStart", "".equals(createTimeStart) || null == createTimeStart ? null : createTimeStart+" 00:00:00");

params.put("createTimeEnd", "".equals(createTimeEnd) || null == createTimeEnd ? null : createTimeEnd+" 23:59:59");

params.put("status", "".equals(status) || null == status ? null: status);

params.put("departmentId", "".equals(departmentId) || null == departmentId ? null: departmentId);

Date d= newDate();

SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMddHHmmss");

String formatTime=sdf.format(d);

String fileName="系统用户表-"+formatTime;//填充projects数据

List userList =sysUserService.getUserList(params);

List> list=createExcelRecord(userList);

String columnNames[]={"姓名", "性别", "邮箱", "电话", "部门", "角色", "状态", "创建时间"};//列名

String keys[] = {"name", "gender", "email", "phone", "department", "role", "status", "createTime"};//map中的key

ByteArrayOutputStream os = newByteArrayOutputStream();try{

ExcelUtil.createWorkBook(list,keys,columnNames).write(os);

}catch(IOException e) {

e.printStackTrace();

}byte[] content =os.toByteArray();

InputStream is= newByteArrayInputStream(content);//设置response参数,可以打开下载页面

res.reset();

res.setContentType("application/vnd.ms-excel;charset=utf-8");

res.setHeader("Content-Disposition", "attachment;filename="+ new String((fileName + ".xls").getBytes(), "iso-8859-1"));

ServletOutputStream out=res.getOutputStream();

BufferedInputStream bis= null;

BufferedOutputStream bos= null;try{

bis= newBufferedInputStream(is);

bos= newBufferedOutputStream(out);byte[] buff = new byte[2048];intbytesRead;//Simple read/write loop.

while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {

bos.write(buff,0, bytesRead);

}

}catch (finalIOException e) {throwe;

}finally{if (bis != null)

bis.close();if (bos != null)

bos.close();

}

}/*** 生成Excel数据

*@paramuserList

*@return

*/

private List> createExcelRecord(ListuserList) {

List> listmap = new ArrayList>();

Map map = new HashMap();

map.put("sheetName", "sheet1");

listmap.add(map);

SysUser user= null;for (int j = 0; j < userList.size(); j++) {

user=userList.get(j);

Map mapValue = new HashMap();

mapValue.put("name", user.getName());

mapValue.put("gender", (user.getGender()==1) ? "男":((user.getGender()==0) ? "女" : "保密"));

mapValue.put("email", user.getEmail());

mapValue.put("phone", user.getPhone());

mapValue.put("department", user.getDepartment().getName());

mapValue.put("role", user.getRole().getName());

mapValue.put("status", user.getStatus()==1 ? "启用" : "禁用");

mapValue.put("createTime", user.getCreateTime().substring(0, 19));

listmap.add(mapValue);

}returnlistmap;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值