easyexcel

快速、简洁、解决大文件内存溢出的java处理Excel工具

APACHE-2.0 License

Stars
32.1K
Committers
70

EasyExcel

JAVAExcel

JavaExcelApache poijxlpoiSAXAPIPOI07Excel easyexcelpoi07Excel3MexcelPOI sax100MeasyexcelMexcel03POIsax

16M2375M(46W25)Excel3.2.1+

100M img


<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>4.0.3</version>
</dependency>

Star

EasyExcel StarEasyExcel

issues

2issue

issues github``gitee``issue``issue QQ

&QQ

QQ QQ QQ QQ1(): 662022184 QQ2(): 1097936804 QQ3(): 453928496 QQ4(): 496594404 QQ5(): 451925680 QQ6(): 784741035 QQ7(): 667889383 QQ8: 113968681 1: 21960511 2: 32796397 3: 33797247 4: 33491624 5: 32134498 6: 34707941 7: 35235427 8: 44752220 9: 11045002277 10(): 27360019755 11():24330026964 12():27210038956 13:83695000992

)

Excel

demohttps://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/read/ReadTest.java https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read

    /**
    * 
    * <p>1. excel {@link DemoData}
    * <p>2. excelexcel{@link DemoDataListener}
    * <p>3. 
    */
    @Test
    public void simpleRead() {
        String fileName = TestFileUtil.getPath() + "demo" + File.separator + "demo.xlsx";
        //  classsheet 
        EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
    }

Excel

demohttps://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write

    /**
     * 
     * <p>1. excel {@link com.alibaba.easyexcel.test.demo.write.DemoData}
     * <p>2. 
     */
    @Test
    public void simpleWrite() {
        String fileName=TestFileUtil.getPath()+"write"+System.currentTimeMillis()+".xlsx";
        //  classsheet 
        // 03  excelType
        EasyExcel.write(fileName,DemoData.class).sheet("").doWrite(data());
    }

web

demohttps://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/web/WebTest.java

    /**
    * Excel
    * <p>
    * 1. excel {@link DownloadData}
    * <p>
    * 2.  
    * <p>
    * 3. finishOutputStream,
    */
    @GetMapping("download")
    public void download(HttpServletResponse response) throws IOException {
        //  swagger postman
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // URLEncoder.encode easyexcel
        String fileName=URLEncoder.encode("","UTF-8").replaceAll("\\+","%20");
        response.setHeader("Content-disposition","attachment;filename*=utf-8''"+fileName+".xlsx");
        EasyExcel.write(response.getOutputStream(),DownloadData.class).sheet("").doWrite(data());
    }
    
    /**
     * 
     * <p>1. excel {@link UploadData}
     * <p>2. excelexcel{@link UploadDataListener}
     * <p>3. 
     */
    @PostMapping("upload")
    @ResponseBody
    public String upload(MultipartFile file)throws IOException{
        EasyExcel.read(file.getInputStream(),UploadData.class,new UploadDataListener(uploadDAO)).sheet().doRead();
        return"success";
    }