1.引入maven依赖
 
 <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.1</version>
        </dependency>
 
2.读取demo代码如下
 
1.excel文件
 

 
 2.LocalStorage.java
 
@Getter
@Setter
@NoArgsConstructor
public class LocalStorage {
   /** 真实文件名 */
    private String realName;
    /**文件名 */
    private String name;
    /**后缀 */
    private String suffix;
    /** 路径 */
    private String path;
    /** 类型 */
    private String type;
}
 
3.读取excel代码示例
 
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class MoveFile {
      public static void readExcel(List<LocalStorage> localStorages)throws Exception{
        //用流的方式先读取到你想要的excel的文件 这里直接读取本地路径文件
        FileInputStream fis=new FileInputStream("D:/file/demo.xls");
        //解析excel
        POIFSFileSystem poifsFileSystem=new POIFSFileSystem(fis);
        //获取整个excel
        HSSFWorkbook hb=new HSSFWorkbook(poifsFileSystem);
        //获取第一个表单sheet
        HSSFSheet sheet = hb.getSheetAt(0);
        //获取第一行
        int firstrow = sheet.getFirstRowNum();
        //获取最后一行
        int lastrow = sheet.getLastRowNum();
        //循环行数依次获取列数
        for (int i = firstrow; i < lastrow+1; i++) {
            //获取哪一行i
            Row row=sheet.getRow(i);
            if (row!=null) {
                //获取这一行的第一列
                int firstCellNum = row.getFirstCellNum();
                //获取这一行的最后一列
                int lastCellNum = row.getLastCellNum();
                //创建一个集合,用处将每一行的每一列数据都存入集合中
                List<String> list=new ArrayList<>();
                for (int j = firstCellNum; j <lastCellNum; j++) {
                    //获取第j列
                    Cell cell=row.getCell(j);
                    if (cell!=null) {
                        list.add(cell.toString());
                    }
                }
                LocalStorage localStorage=new LocalStorage();
               //如果列数较多可以使用循环进行取值
                if (list.size()>0) {
                    localStorage.setRealName(list.get(0));
                    localStorage.setSuffix(list.get(1));
                    localStorage.setType(list.get(2));
                    localStorages.add(localStorage);
                }
            }
        }
        fis.close();
}
}