读取Excel的N中方式
读取Excel的N中方式
spring boot 继承EsayExcel 实现excel的文件上传下载
导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>创建excel表实现类
public class ReadData {
// 设置列对应的属性
private Integer no;
private String name;
}controller写法
/**
* 上传execl文件,解析数据到数据库
* @param file
* @return
*/
public R uploadExcel(MultipartFile file){
eduSubjectService.uploadExcelFile(file);
return R.ok();
}excel 读取数据的监听 主要是继承AnalysisEventListener
之后,重写invoke方法,然后在里面处理数据 public class ExcelListener extends AnalysisEventListener<ReadData> {
List<ReadData> list = new ArrayList<ReadData>();
// 一行一行去读取excel内容
public void invoke(ReadData readData, AnalysisContext analysisContext) {
System.out.println(readData);
list.add(readData);
}
// 读取excel表头信息
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头信息:"+headMap);
}
// 读取完成后执行
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}文件下载
创建excel实体类
public class WriteData {
// 设置表头属性名称
private Integer no;
private String name;
}测试test写法
public class TestExcelWriteData {
public static void main(String[] args) {
// 写法1
String fileName = "D:\\excel\\11.xlsx";
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
// 如果这里想使用03 则 传入excelType参数即可
EasyExcel.write(fileName, WriteData.class).sheet("写入方法一").doWrite(data());
}
//循环设置要添加的数据,最终封装到list集合中
private static List<WriteData> data() {
List<WriteData> list = new ArrayList<WriteData>();
for (int i = 0; i < 10; i++) {
WriteData data = new WriteData();
data.setNo(i);
data.setName("张三"+i);
list.add(data);
}
return list;
}
}
java POI上传excel的简单调用
Spring Boot+poi实现excel文件上传&下载
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ahir's Blog!
评论
GitalkDisqusjs