1、导入EasyExcel依赖
<!--导入EasyExcel依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
————————————————
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.google.common.collect.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName ExcelController
* @Descripition EasyExcel导入/导出
* @Author admin
* @Date 2023/10/10 15:40
*/
@RestController
@RequestMapping("/excel/test")
public class ExcelController {
// Excel文件名称
private static final String FILE_NAME = "订单列表test";
//一个sheet装100w数据
private static final Integer PER_SHEET_ROW_COUNT = 30;
//每次查询20w数据,每次写入20w数据
private static final Integer PER_WRITE_ROW_COUNT = 10;
/**
* 一、EasyExcel简单导入
*
* @param file
* @throws IOException
*/
@PostMapping("/import")
public void importExcel(@RequestParam MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
List<CustomerImportClass> list = EasyExcel.read(inputStream)
.head(CustomerImportClass.class)
// 设置sheet,默认读取第一个
.sheet()
// 设置标题所在行数
.headRowNumber(1)
.doReadSync();
for (CustomerImportClass customerImportClass : list) {
System.out.println(customerImportClass);
}
System.out.println("【成功导入Excel数据】条数 : " + list.size());
}
/**
* 二、EasyExcel简单导入
* 1.1、单sheet导入(读)Excel
* 1.2、分页(批次)查询数据循环写入Excel表格
*
* @param file
* @throws IOException
*/
@PostMapping("/importPage")
public void importPage(@RequestParam MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
// 1.1、单sheet导入(读)Excel
// 1.2、分页(批次)查询数据循环写入Excel表格
EasyExcel.read(inputStream, new CustomListener())
// 设置sheet,默认读取第一个
.sheet()
// 设置标题所在行数
.headRowNumber(1)
.doRead();
}
/**
* 三、EasyExcel简单导入
* 1.1、多sheet导入(读)Excel
* 1.2、分页(批次)查询数据循环写入Excel表格
*
* @param file
* @throws IOException
*/
@PostMapping("/importSheetPage")
public void importSheetPage(@RequestParam MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
// 2.1、多sheet导入(写入)Excel
// 2.2、分页(批次)查询数据循环写入Excel表格
EasyExcel.read(inputStream, new CustomListener())
// 设置标题所在行数
.headRowNumber(1)
.doReadAll();
}
/**
* 一、EasyExcel简单导出
*
* @param response
*/
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) {
try {
// 设置响应结果
this.setExcelResponseProp(response, FILE_NAME);
// 模拟业务代码,获取数据集
List<ExcelTemplate> list = this.queryToExcel();
EasyExcel.write(response.getOutputStream())
.head(ExcelTemplate.class)
.excelType(ExcelTypeEnum.XLSX)
.sheet(FILE_NAME)
.doWrite(list);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/**
* 二、EasyExcel简单批量导出
* 1、单sheet导出(写入)Exce

本文主要介绍了在Java中使用EasyExcel进行Excel文件的导入和导出。包含导入EasyExcel依赖的方法,以及单sheet、多sheet的导入和导出示例,还涉及分页查询数据循环写入Excel表格,同时给出了导入监听解析表格数据和导出模版的代码。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



