zoukankan      html  css  js  c++  java
  • alibaba-easyexcel使用问题总结

    快速、简单避免OOM的java处理Excel工具

    GitHub地址:https://github.com/alibaba/easyexcel

    下载jar包的:MvnJar - 专注于搜索/浏览/探讨Maven库项目

    找jar包pom依赖的: https://mvnrepository.com/

    离线jar包导为pom依赖

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>1.1.2-beta5</version>
    </dependency>
    

    如果上面pom依赖不生效的话就自己下jar包,将jar包导为pom依赖。

    1. 进入所需要导成pom的jar包目录
    2. 使用maven命令打包

    mvn install:install-file -DgroupId=com.alibaba -DartifactId=easyexcel -Dversion=1.1.2-beta5 -Dpackaging=jar -Dfile=easyexcel-1.1.2-beta5.jar

    注:

        -DgroupId:pom文件中依赖的groupId名
    
        -DartifactId:pom文件中依赖的artifactId名
    
        -Dversion:pom文件中依赖的版本号
    
        -Dpackaging:打包类型
    
        -Dfile: 要打包的jar包文件全路径(如果已经进入该目录则只需要jar包名即可)
    

    如图build success 后就在本地maven的repository【setting.xml所设置的路径】中生成pom依赖,在项目中pom.xml引入依赖即可。

    java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/FileMagic问题解决

    离线导入的easyexcel-1.1.2-beta5.jar后,本地缺少poi等相应的pom依赖的jar包。打开easyexcel-1.1.2-beta5.jar的pom.xml文件,将里面所依赖的jar包下载即可:

    Java通过Url获取InputStream

    文件路径为url的情况

    /**
     * 通过url取得文件返回InputStream类型数据
     */
    public class HttpUtils {
    	/**
    	 * @param url
    	 * @return
    	 */
    	public static InputStream returnBitMap(String path) {
    		URL url = null;
    		InputStream is =null;
    		try {
    			url = new URL(path);
    		} catch (MalformedURLException e) {
    			e.printStackTrace();
    		}
    		try {//利用HttpURLConnection对象,我们可以从网络中获取网页数据.
    			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    			conn.setDoInput(true);
    			conn.connect();
    			is = conn.getInputStream();	//得到网络返回的输入流	
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return is;
    	}
    }
    

    注意:文件流还要转成buffer

    https://github.com/alibaba/easyexcel/issues/215

    有问题还是看看issues上有没有类似的问题。

    是在不济就看源码吧。



    简单测试

    package io.github.newmean.demo;
    
    import com.alibaba.excel.ExcelReader;
    import com.alibaba.excel.context.AnalysisContext;
    import com.alibaba.excel.event.AnalysisEventListener;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class DemoApplicationTests {
    
        @Test
        public void contextLoads() {
            try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("D:\excel\测试.xlsx"))) {
                AnalysisEventListener<Object> objectAnalysisEventListener = new AnalysisEventListener<Object>(){
                    @Override
                    public void invoke(Object o, AnalysisContext analysisContext) {
                        System.out.println(o);
                    }
    
                    @Override
                    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
                    }
                };
                ExcelReader excelReader = new ExcelReader(bufferedInputStream, null, objectAnalysisEventListener);
                excelReader.read();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }
    
    

    结果如下

    
    [处事, 领导, 类型]
    [一处, 小白, 文件]
    [二处, 小红, 档案]
    Disconnected from the target VM, address: '127.0.0.1:53624', transport: 'socket'
    2019-04-15 22:25:10.439  INFO 7448 --- [       Thread-2] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
    
    Process finished with exit code 0
    
    
  • 相关阅读:
    centos7.6 redis
    centos7.5 rabbitmq3.7.4
    centos7.6 nfs
    nginx跨域
    Linux进阶教程丨第1章:访问命令行
    Representation Learning for Event-based Visuomotor Policies
    Goland 2019下载和安装(带破解补丁和汉化包)
    Adobe XD CC 2020中文破解版(附破解教程)
    SSH 三步解决免密登录
    cygwin命令行安装
  • 原文地址:https://www.cnblogs.com/nm666/p/10713765.html
Copyright © 2011-2022 走看看