使用poi 导出 excel

//导出excel
    
    @RequestMapping(value = "export")
    @ResponseBody
    public String exportExcel(HttpServletResponse response,HttpSession session ,String code) {
            String name=(String) session.getAttribute("username");
            System.out.println("name:"+name);    
            
            // 第一步,创建一个webbook,对应一个Excel文件  
            HSSFWorkbook wb = new HSSFWorkbook();  
            // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet  
            HSSFSheet sheet = wb.createSheet("用户表一");  
            // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short  
            HSSFRow row = sheet.createRow((int) 0);  
            // 第四步,创建单元格,并设置值表头 设置表头居中  
            HSSFCellStyle style = wb.createCellStyle();  
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  
      
            HSSFCell cell = row.createCell((short) 0);  
            cell.setCellValue("学号");  
            cell.setCellStyle(style);  
            cell = row.createCell((short) 1);  
            cell.setCellValue("姓名");  
            cell.setCellStyle(style);  
            cell = row.createCell((short) 2);  
            cell.setCellValue("密码");  
            cell.setCellStyle(style);  
            cell = row.createCell((short) 3);  
            cell.setCellValue("年龄");  
            cell.setCellStyle(style);  
      
            // 第五步,写入实体数据 实际应用中这些数据从数据库得到,  
            List<User> list=userService.sellikeUserList(name);
      
            for (int i = 0; i < list.size(); i++)  
            {  
                row = sheet.createRow((int) i + 1);  
                User user = (User) list.get(i);  
                // 第四步,创建单元格,并设置值  
                row.createCell((short) 0).setCellValue((double) user.getUid());  
                row.createCell((short) 1).setCellValue(user.getUsername());  
                row.createCell((short) 2).setCellValue( user.getPassword());   
                cell = row.createCell((short) 3);
                Long a = (Long) (user.getAge()==null?0l : user.getAge());
                if(user.getAge()!=null){
                     cell.setCellValue(user.getAge());  
                }
               
            }  
            // 第六步,将文件存到指定位置  
          /*  try  
            {  
                FileOutputStream fout = new FileOutputStream("C:/Users/dingwj.SJNS/Desktop/User.xls");  
                wb.write(fout);  
                fout.close();  
            }  
            catch (Exception e)  
            {  
                e.printStackTrace();  
            }  */
            
         // 设置response参数,可以打开下载页面
            response.reset();
            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            String username="用户";
            String filename = username + ".xls";
            OutputStream out = null;
            try {
                // 获取输出流
                out = response.getOutputStream();
                // 设置头信息
                response.setHeader("Content-disposition", "attachment;filename="
                        + new String(filename.getBytes("GBK"), "ISO8859-1"));
                // 通过流将excel写出
                wb.write(out);
                
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (out != null) {
                    // 关闭输出流
                    try {
                        out.close();
                    } catch (IOException e) {
                        
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
             return WebUtil.convertToJsonData("success");
        // 获取数据
       
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值