1.EasyExcel地址
关于Easyexcel | Easy Excel
2.实现步骤
1.项目中引入maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyexcel.version}</version>
<exclusions>
<!-- 如果项目中使用poi依赖 排除相关依赖 -->
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
</exclusions>
</dependency>
2.对于本地文件进行提取
package com.XXX;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Map;
public class ExcelTestPoi {
public static void main(String[] args) throws IOException {
// 获取本地文件路径
String fileName = "本地文件的路径";
// 创建一个字符串构建器用于累加文本
StringBuilder allText = new StringBuilder();
// 读取 Excel 文件
// 使用匿名内部类创建监听器
EasyExcel.read(fileName , new ReadListener<Map<String, String>>() {
@Override
public void invoke(Map<String, String> data, AnalysisContext context) {
// 将每一行的数据转换为字符串,并累加到 allText 中
for (String value : data.values()) {
if (value != null) {
allText.append(value).append(" ");
}
}
allText.append("\n"); // 每行数据后添加换行符
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 所有数据解析完成后,输出累加的字符串
System.out.println("合并后的文本内容:");
System.out.println(allText.toString());
}
}).sheet().doRead();
}
3.对于网络excel资源进行提取
package com.XXX;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Map;
public class ExcelTestPoi {
public static void main(String[] args) throws IOException {
StringBuilder allText = new StringBuilder(); // 创建一个字符串构建器用于累加文本
// 创建网络资源对象
URL url = new URL("网络资源地址");
// 打开对于资源可操作
URLConnection urlConnection = url.openConnection();
// 获取输入流对象
InputStream inputStream = urlConnection.getInputStream();
// 读取 Excel 文件
EasyExcel.read(inputStream, new ReadListener<Map<String, String>>() {
@Override
public void invoke(Map<String, String> data, AnalysisContext context) {
// 将每一行的数据转换为字符串,并累加到 allText 中
for (String value : data.values()) {
if (value != null) {
allText.append(value).append(" ");
}
}
allText.append("\n"); // 每行数据后添加换行符
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 所有数据解析完成后,输出累加的字符串
System.out.println("合并后的文本内容:");
System.out.println(allText.toString());
}
}).sheet().doRead();
}
}