使用ExcelUtils获取Excel文件中的数据

  ExcelUtils所需要的pom依赖如下,该类存在于com.github.crab2died下:

<!-- https://mvnrepository.com/artifact/com.github.crab2died/Excel4J -->
<dependency>
    <groupId>com.github.crab2died</groupId>
    <artifactId>Excel4J</artifactId>
    <version>3.0.0</version>
</dependency>
 List<List<String>> readExcel2List(InputStream is, int offsetLine, int limitLine, int sheetIndex)

 is:表示Excel文件的输入流

 offsetLine:获取数据的偏移量行数,取值从0开始(表示第一行),1表示第二行,依次类推

 limitLine:限制行数,表示获取偏移量行数后面的多少行数据,取值为自然数(从0开始)

 sheetIndex:表示第几个sheet,取值为正整数

import org.springframework.web.multipart.MultipartFile;
import lombok.extern.slf4j.Slf4j;
import com.github.crab2died.ExcelUtils;
import java.io.InputStream;
import java.util.*;

@RestController
@Slf4j
public class CrawlerUtilController {

    /**
     * 从Excel文件中获取数据进行业务处理
     */
    @PostMapping("/single/import1")
    public void import1(MultipartFile excelFile) {
        try{
            InputStream is = excelFile.getInputStream();
            //从文件流is中获取第一个sheet分页第2行到14320行的数据,并将每一行的数据转换为List<String>,最终将所有的行数据存储在List<List<String>>中
            List<List<String>> list= ExcelUtils.getInstance().readExcel2List(is,1,14318,1);
            for(List<String> stringList:list){
                //获取第一列的值
                String taxVouNo=stringList.get(0);
                //获取第三列的值
                String remark=stringList.get(2);
                //todo:相关的业务处理
            }
        }catch (Exception e){
            log.error("从Excel文件中获取数据进行业务处理出现异常:",e);
        }
    }
}

 前端在调用该接口时可以以post请求方式,请求体以form-data形式,key为excelFile,value为excel文件,类型为File进行调用

猜你喜欢

转载自blog.csdn.net/y_bccl27/article/details/114868069
今日推荐