无论在学习中还是工作中,都会遇到excel表导入功能,接下里我们就来实现这个功能。
平时呢,大家可能对阿里的easypoi比较熟悉,简简单单的一两行代码就能够进行导入和导出的操作。但是在很多地方,我们还是用到了Apache的poi。
使用技术是spring boot+mybatis plus
让我们来看看表格
需求就是将表格填入
第一步,创建依赖
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
第二步,通过以下的方法进行遍历(注意!!!如果有合并单元格,可以进行判断,这个问题也烦恼了很久)
合并单元格的解析流程:
- 先判断当前表格有没有合并单元格
- 再判断当前行中的当前列有没有合并单元格
- 有的话调用方法进行判断单元格占了几行几列
- 然后将空的值进行赋值
- 然后读出进行导入
@Override
public String uploadExcel(MultipartFile file) throws IOException {
try {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
InputStream inputStream = file.getInputStream();
Workbook workbook = WorkbookFactory.create(inputStream);
Sheet sheet = workbook.getSheetAt(0);
//获取行数
int rowCount = sheet.getPhysicalNumberOfRows();
System.out.println(rowCount);
Row rowTitle = sheet.getRow(0);
//获取列数
int cellCount = rowTitle.getPhysicalNumberOfCells();
List<SchoolListModel> list = new ArrayList<>()