数据库数据读取并且生成excel

来源:互联网 发布:高中编程 编辑:程序博客网 时间:2024/05/01 09:49
public String printOutExcel(HttpServletResponse response,
HttpServletRequest request,@ModelAttribute("username1")String username,@ModelAttribute("starttime1")String starttime,@ModelAttribute("endtime1")String endtime) throws IOException {
String starttimeDate = "";
String endtimeDate = "";

SimpleDateFormat dateFormat2 = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
List<User> list = null;
if (!"".equals(starttime) && starttime != null && !"".equals(endtime)
&& endtime != null) {
starttimeDate = dateFormat2.format(new Date(starttime));
endtimeDate = dateFormat2.format(new Date(endtime));
list = userService.getUsersTime(starttimeDate, endtimeDate,username);
} else {
list = userService.getUsersTime(username);
}


request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.ms-excel");
OutputStream out = response.getOutputStream();
// 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框
// attachment表示以附件方式下载。如果要在页面中打开,则改为 inline
String fileName = "用户注册信息";
response.setContentType("application/octet-stream;charset=utf-8");  
response.setHeader("Content-Disposition", "attachment;filename="  
       + new String(fileName.getBytes(),"iso-8859-1") + ".xls");  
// 创建workbook工作薄
Workbook workbook = new HSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("用户信息");

sheet.setDefaultColumnWidth(20);
// 创建第二个工作薄
// Sheet sheet2 = workbook.createSheet();
// 为工作薄起名字
// workbook.setSheetName(1, "口袋里的小龙");
// 设置单元格样式
HSSFCellStyle hssfCellStyle = (HSSFCellStyle) workbook
.createCellStyle();
hssfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 居中显示
hssfCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 纵向居中
// 创建行
Row row = sheet.createRow(0);
// row.setHeight((short) (250 * 200)); 
// 创建单元格
Cell cell = row.createCell(0);
// 设置第一行第一格的值
cell.setCellValue("用户名");
// 设置单元格的文本居中显示
cell.setCellStyle(hssfCellStyle);
// 创建单元格
Cell cell1 = row.createCell(1);
// 设置第一行第一格的值
cell1.setCellValue("真实姓名");
cell1.setCellStyle(hssfCellStyle);
// 创建单元格
Cell cell2 = row.createCell(2);
// 设置第一行第一格的值
cell2.setCellValue("客户经理");
cell2.setCellStyle(hssfCellStyle);
// 创建单元格
Cell cell3 = row.createCell(3);
// 设置第一行第一格的值
cell3.setCellValue("团队经理");
cell3.setCellStyle(hssfCellStyle);


// 创建单元格
Cell cell4 = row.createCell(4);
// 设置第一行第一格的值
cell4.setCellValue("营业部经理");
cell4.setCellStyle(hssfCellStyle);

// 创建单元格
Cell cell5 = row.createCell(5);
// 设置第一行第一格的值
cell5.setCellValue("注册时间");
cell5.setCellStyle(hssfCellStyle);

if(list!=null&&list.size()>0){
for (int i = 0; i < list.size(); i++) {
User user = list.get(i);
Row row1 = sheet.createRow(i+1);
Cell cells = row1.createCell(0);
cells.setCellStyle(hssfCellStyle);
cells.setCellValue(user.getUsername());

Cell cell1s = row1.createCell(1);
cell1s.setCellStyle(hssfCellStyle);
cell1s.setCellValue(user.getRealname());


Cell cell2s = row1.createCell(2);
cell2s.setCellStyle(hssfCellStyle);
// System.out.println("user:"+user.getKehu());
if("".equals(user.getKehu())||user.getKehu()==null)
cell2s.setCellValue("无");
else 
cell2s.setCellValue(user.getKehu());


Cell cell3s = row1.createCell(3);
cell3s.setCellStyle(hssfCellStyle);
if("".equals(user.getTuandui())||user.getTuandui()==null)
cell3s.setCellValue("无");
else 
cell3s.setCellValue(user.getTuandui());


Cell cell4s = row1.createCell(4);
cell4s.setCellStyle(hssfCellStyle);
if("".equals(user.getYingye())||user.getYingye()==null)
cell4s.setCellValue("无");
else 
cell4s.setCellValue(user.getYingye());

Cell cell5s = row1.createCell(5);
cell5s.setCellStyle(hssfCellStyle);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
cell5s.setCellValue(dateFormat.format(user.getCreatetime()));
}
}


workbook.write(out);
System.out.println("数据写入成功!");
out.flush();
out.close();
return null;
}
原创粉丝点击