导出excel功能实现

一、依赖加上

<!-- excel -->
          <dependency>
                 <groupId>org.apache.poi</groupId>
                 <artifactId>poi</artifactId>
                 <version>4.1.1</version>
          </dependency>
          <dependency>
                 <groupId>org.apache.poi</groupId>
                 <artifactId>poi-ooxml</artifactId>
                 <version>4.1.1</version>
          </dependency>
          <dependency>
                 <groupId>org.apache.poi</groupId>
                 <artifactId>poi-ooxml-schemas</artifactId>
                 <version>4.1.1</version>
          </dependency>

二、按钮和点击事件加上

<button type="button"
                        class="preadd-btn btn btn-warning btn-sm">导出数据</button>

<script src="bower_components/jquery/dist/jquery.min.js"></script>

<script type="text/javascript">

 $(document).ready(function(){

$(".input-group-btn").on("click",".preadd-btn",outputExcel);//绑定点击事件

});

function outputExcel(){
       window.location.href="user/outputExcel"; //controller层
   }

</script>

三、controller层

@RequestMapping("outputExcel")
   public void outputExcel(HttpServletRequest request, HttpServletResponse response) {
       sysUserService.outputExcel(request, response);
   }

四、service层

//service接口

void outputExcel(HttpServletRequest request, HttpServletResponse response);

//service实现

@Override
    public void outputExcel(HttpServletRequest request, HttpServletResponse response){
        // TODO Auto-generated method stub

//--ExportExcelUtils工具类需要几个参数-title,data,position,sheetName和outputstream

//用List<对象>查出数据,遍历,一行(一个对象)就换成一个map,所有map放进data
        Map<String, String> title = new HashMap(); // 表头
        List<Map<String, Object>> data = new ArrayList(); // 需要导出的数据
        Map<String, Integer> position = new HashMap(); // 表头字段对应的位置(自定义位置)
        
        // 设置表头字段位置
        position.put("username", 0);
        position.put("dept", 1);
        position.put("email", 2);
        position.put("mobile", 3);
        position.put("valid", 4);
        position.put("createdTime", 5);
        position.put("modifiedTime", 6);
 
        // 设置表头信息
        title.put("username", "用户名");
        title.put("dept", "所属部门");
        title.put("email", "邮箱");
        title.put("mobile", "手机号");
        title.put("valid", "是否被禁用");
        title.put("createdTime", "创建时间");
        title.put("modifiedTime", "最后修改时间");
        List<SysUserDeptVo> list=sysUserDao.getAllUsers();
 
        Map<String, Object> userMap = null;
        
        for (SysUserDeptVo user : list) {
            userMap = new HashMap();
            userMap.put("username", user.getUsername());
            System.out.println(user.getUsername());
            userMap.put("dept", "长沙");
            userMap.put("email", user.getEmail());
            userMap.put("mobile", user.getMobile());
            userMap.put("createdTime", user.getCreatedTime());
            userMap.put("modifiedTime", user.getModifiedTime());
            String valid = "";
            if(user.getValid()== null || user.getValid().equals("")) valid="空值";
            else if(user.getValid()==1) valid="正常";
            else if(user.getValid()==0) valid="被禁用";
            userMap.put("valid", valid);
            data.add(userMap);     // 将userMap添加到List集合中
        }
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss");
        String date = df.format(new java.util.Date());
        String excelName = "用户列表-" + date + ".xlsx";
        String sheetName = "用户列表数据";
        try {
            excelName = URLEncoder.encode(excelName, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        response.setCharacterEncoding("UTF-8");
        response.addHeader("Content-Disposition", "attachment;filename=" + excelName);
        response.setContentType("application/x-download");
        // 调用写好的工具类的导出数据方法   传入对应的参数
        try {
            ExportExcelUtils.exportDataToExcel(title, position, data, sheetName, response.getOutputStream());
            System.out.println("AAAAAAAAAA");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

四、ExportExcelUrils工具类

链接:https://pan.baidu.com/s/16yBcZ1c1lQNa4oIF8Lpcvw?pwd=gv6k 
提取码:gv6k 

另外网上看到说mykit-excel工具很好用mykit-excel之——这是我用过的最好用的导出Excel的工具类_mykit excel-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值