zoukankan      html  css  js  c++  java
  • 使用easyexcel生成文件,下载文件示例

    使用easyexcel生成文件,下载文件示例  

    package com.harara.easyexcel.controller;
    
    import com.alibaba.excel.ExcelWriter;
    import com.alibaba.excel.metadata.Sheet;
    import com.alibaba.excel.support.ExcelTypeEnum;
    import com.harara.model.User;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.OutputStream;
    import java.util.*;
    
    /**
     * 下载excel文件 demo
     * @author : harara
     * @version : 2.0
     * @date : 2020/6/11 9:44
     */
    @RequestMapping("/excel")
    @RestController
    public class ExcelController  {
    
        /**
         * 生成文件、下载文件
         * @param request
         * @param response
         */
        @GetMapping("/down.html")
        public void downloadExcel(HttpServletRequest request, HttpServletResponse response){
            List<User> data = getExcelModelData();
            OutputStream out = null;
            ExcelWriter excelWriter = null;
            try {
                out = response.getOutputStream();
                //设置ConetentType CharacterEncoding Header,需要在excelWriter.write()之前设置
                response.setContentType("mutipart/form-data");
                response.setCharacterEncoding("utf-8");
                response.setHeader("Content-disposition","attachment;filename=test.xlsx");
    
                excelWriter = new ExcelWriter(out, ExcelTypeEnum.XLSX);
                Sheet sheet = new Sheet(0);
                sheet.setSheetName("sheet");
                sheet.setClazz(data.get(0).getClass());
                excelWriter.write(data,sheet);
                excelWriter.finish();
                out.flush();
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                try {
                    out.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
    
            }
    
        }
    
        /**
         * 获取实体对象数据
         * @return
         */
        private List<User> getExcelModelData(){
            List<User> users = new ArrayList<User>();
            for(int i=0; i <= 10;i++){
                User user = new User();
                user.setName("name" + i);
                user.setAge("age" + i);
                user.setEmail("email" + i);
                user.setAddress("address" + i);
                user.setSax("sax" + i);
                user.setHeigh("heigh" + i);
                user.setLast("last" + i);
                user.setBitthday(new Date());
                users.add(user);
            }
            return users;
        }
    
    }

     User类:

    package com.harara.model;
    
    import com.alibaba.excel.annotation.ExcelProperty;
    import com.alibaba.excel.metadata.BaseRowModel;
    import lombok.Data;
    
    import java.util.Date;
    
    /**
     * @author : harara
     * @version : 2.0
     * @date : 2020/6/9 15:32
     * 继承BaseRowModel
     */
    @Data
    public class User extends BaseRowModel{
    
        @ExcelProperty(value = "姓名", index = 0)
        private String name;
    
        @ExcelProperty(value = "年龄", index = 1)
        private String age;
    
        @ExcelProperty(value = "邮箱", index = 2)
        private String email;
    
        @ExcelProperty(value = "地址", index = 3)
        private String address;
    
        @ExcelProperty(value = "性别", index = 4)
        private String sax;
    
        @ExcelProperty(value = "高度", index = 5)
        private String heigh;
    
        @ExcelProperty(value = "备注", index = 6)
        private String last;
    
        @ExcelProperty(value = "生日",index = 7,format = "yyyy/MM/dd")
        private Date bitthday;
    
    }
    View Code

    在浏览器输入地址http://ip:port/excel/down.html,下载文件test.xlsx

  • 相关阅读:
    Servlet
    Web服务器和Tomcat
    DOM文档对象模型
    JavaScript总结
    CSS总结
    商城——购物车模块
    用户注册登录认证模块
    P2P技术之STUN、TURN、ICE详解
    P2P中的NAT穿越(打洞)方案详解
    NAT技术详解
  • 原文地址:https://www.cnblogs.com/kiko2014551511/p/13092903.html
Copyright © 2011-2022 走看看