152.使用ExcelUtils导出Excel

大兔子大兔子 提交于 2020-02-28 18:47:15

建议:使用ajax请求,因为这种发生是直接下载指定位置,使用Ajax回调函数给用户提示

 

原来导出Excel的方式:https://my.oschina.net/springMVCAndspring/blog/1830460

工具类及jar下载路径: https://gitee.com/Luck_Me/ExcelUtis/tree/master

参考文档:https://www.oschina.net/news/97902/excelutil-2-0-1-released

 

1. 效果 

2. 实现过程

2.1 导入依赖的jar

    <!-- 16.使用 execelUtils导出Excel表   这个是在上边第13个  改进的   如果使用 这个 第13个依赖的jar就不需要了 -->
        <dependency>
            <groupId>net.oschina.likaixuan</groupId>
            <artifactId>excelutil</artifactId>
            <version>2.0.1</version>
        </dependency>

2.2  项目中导入 工具类

工具类内容完全不用改(你的包名要改

2.3 使用(有必要粘贴代码)

/**
     * 6.查询所有员工信息 在职在前 离职在后
     * @Title: exportEmpoyeeInfo
     * @Description: 
     * @return void
     * @throws Exception 
     * @throws 
       @date 2018年6月14日 下午5:15:19
     */
    @RequestMapping("/exportEmpoyeeInfo.action")
    public void exportEmpoyeeInfo(HttpServletResponse response ) throws Exception{
        response.setCharacterEncoding("UTF-8");  
        List<User> list =    employeeService.queryAllEmployeeInfoToExcel();
        /*//创建excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        //创建sheet页
        HSSFSheet sheet = wb.createSheet("员工信息表");
        
        //创建标题行
        HSSFRow titleRow = sheet.createRow(0);
        titleRow.createCell(0).setCellValue("姓名");
        titleRow.createCell(1).setCellValue("爱好");
        titleRow.createCell(2).setCellValue("工作年限");
        titleRow.createCell(3).setCellValue("电话号码");
        titleRow.createCell(4).setCellValue("身份证号码");
        titleRow.createCell(5).setCellValue("户籍");
        titleRow.createCell(6).setCellValue("入职时间");
        titleRow.createCell(7).setCellValue("所在部门");
        titleRow.createCell(8).setCellValue("职位");
        titleRow.createCell(9).setCellValue("状态    ");
        titleRow.createCell(10).setCellValue("管理员");
        titleRow.createCell(11).setCellValue("其他描述");
        //遍历将数据放到excel列中
                for (User user : list) {
                    HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum()+1);
                    dataRow.createCell(0).setCellValue(user.getUsername());
                    String hobby = user.getHobby();
                    if(hobby.length()==0){
                        hobby="";
                    }else{
                        if("1".equals(hobby)){
                            hobby="散步";
                        }
                        if("2".equals(hobby)){
                            hobby="爬山";
                        }
                        if("3".equals(hobby)){
                            hobby="读书";
                        }
                        if("1,2".equals(hobby)){
                            hobby="散步,爬山";
                        }
                        if("1,3".equals(hobby)){
                            hobby="散步,读书";
                        }
                        if("2,3".equals(hobby)){
                            hobby="爬山,读书";
                        }
                        if("1,2,3".equals(hobby)){
                            hobby="散步,爬山,读书";
                        }
                    }
                    
                    dataRow.createCell(1).setCellValue(hobby);
                    String workage = user.getWorkage().toString();
                    if(workage.length()==0){
                        workage="";
                    }else{
                        if("0".equals(workage)){
                            workage="1年以内";
                        }
                        if("1".equals(workage)){
                            workage="1-3年";
                        }
                        if("2".equals(workage)){
                            workage="3-5年";
                        }
                        if("3".equals(workage)){
                            workage="5年以上";
                        }
                    }
                    dataRow.createCell(2).setCellValue(workage);
                    dataRow.createCell(3).setCellValue(user.getPhonenumber());
                    dataRow.createCell(4).setCellValue(user.getPersoncardnumber());
                    dataRow.createCell(5).setCellValue(user.getAddress());
                    dataRow.createCell(6).setCellValue(user.getCreatetime());
                    dataRow.createCell(7).setCellValue(user.getDepartmentname());
                    dataRow.createCell(8).setCellValue(user.getJobname());
                    String status = user.getStatus();
                    if("0".equals(status)){
                        status="在职";
                    }else{
                        status="离职";
                    }
                    dataRow.createCell(9).setCellValue(status);
                    String isadmin = user.getIsadmin();
                    if("0".equals(isadmin)){
                        isadmin="是";
                    }else{
                        isadmin="否";
                    }
                    dataRow.createCell(10).setCellValue(isadmin);
                    dataRow.createCell(11).setCellValue(user.getOther());
                }
                   // 设置下载时客户端Excel的名称  
                String filename =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ".xls";  
                response.setContentType("application/vnd.ms-excel");  
                response.setHeader("Content-disposition", "attachment;filename=" + filename);  
                OutputStream ouputStream = response.getOutputStream();  
                wb.write(ouputStream);  
                ouputStream.flush();  
                ouputStream.close(); */
        Map<String, String> tip = new HashMap<String,String>();
        try {
            //列名 及属性  如:姓名(Excel的列名)  username(pojo属性)  “,”英文的
            String keyValue ="姓名:username,爱好:hobby,工作年限:workage,电话号码:phonenumber,入职时间:createtime"; 
            //获取 当前系统的桌面路径   记得 c:访问权限 要开放
            FileSystemView fsv = FileSystemView.getFileSystemView();
            File com=fsv.getHomeDirectory();    //这便是读取桌面路径的方法了
            String path = com.getPath();
            //调用工具类     cn.guang.ssm.pojo.User:实体类全路径
            ExcelUtil.exportExcel(path+"/工具导出Excel测试.xls",keyValue,list,"cn.guang.ssm.pojo.User");
            tip.put("tip", "导出成功!");
        } catch (Exception e) {
            e.printStackTrace();
            tip.put("tip", "导出失败!");
        }
        //将map转为json
            String jsonStri = JSONObject.toJSONString(tip);
            //将结果以流的形式输出到请求位置
            PrintWriter out=response.getWriter();
            out.println(jsonStri);
            out.flush();
            out.close();
    }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!