Class ExcelReader

java.lang.Object
org.aoju.bus.office.excel.ExcelBase<ExcelReader>
org.aoju.bus.office.excel.ExcelReader
All Implemented Interfaces:
Closeable, AutoCloseable

public class ExcelReader extends ExcelBase<ExcelReader>
Excel读取器 读取Excel工作簿
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • ExcelReader

      public ExcelReader(org.apache.poi.ss.usermodel.Sheet sheet)
      构造
      Parameters:
      sheet - Excel中的sheet
    • ExcelReader

      public ExcelReader(String excelFilePath, int sheetIndex)
      构造
      Parameters:
      excelFilePath - Excel文件路径,绝对路径或相对于ClassPath路径
      sheetIndex - sheet序号,0表示第一个sheet
    • ExcelReader

      public ExcelReader(File bookFile, int sheetIndex)
      构造
      Parameters:
      bookFile - Excel文件
      sheetIndex - sheet序号,0表示第一个sheet
    • ExcelReader

      public ExcelReader(File bookFile, String sheetName)
      构造
      Parameters:
      bookFile - Excel文件
      sheetName - sheet名,第一个默认是sheet1
    • ExcelReader

      public ExcelReader(InputStream bookStream, int sheetIndex)
      构造
      Parameters:
      bookStream - Excel文件的流
      sheetIndex - sheet序号,0表示第一个sheet
    • ExcelReader

      public ExcelReader(InputStream bookStream, String sheetName)
      构造
      Parameters:
      bookStream - Excel文件的流
      sheetName - sheet名,第一个默认是sheet1
    • ExcelReader

      public ExcelReader(org.apache.poi.ss.usermodel.Workbook book, int sheetIndex)
      构造
      Parameters:
      book - Workbook 表示一个Excel文件
      sheetIndex - sheet序号,0表示第一个sheet
    • ExcelReader

      public ExcelReader(org.apache.poi.ss.usermodel.Workbook book, String sheetName)
      构造
      Parameters:
      book - Workbook 表示一个Excel文件
      sheetName - sheet名,第一个默认是sheet1
    • ExcelReader

      public ExcelReader(String excelFilePath, String sheetName)
      构造
      Parameters:
      excelFilePath - Excel文件路径,绝对路径或相对于ClassPath路径
      sheetName - sheet名,第一个默认是sheet1
  • Method Details

    • isIgnoreEmptyRow

      public boolean isIgnoreEmptyRow()
      是否忽略空行
      Returns:
      是否忽略空行
    • setIgnoreEmptyRow

      public ExcelReader setIgnoreEmptyRow(boolean ignoreEmptyRow)
      设置是否忽略空行
      Parameters:
      ignoreEmptyRow - 是否忽略空行
      Returns:
      this
    • setCellEditor

      public ExcelReader setCellEditor(CellEditor cellEditor)
      设置单元格值处理逻辑 当Excel中的值并不能满足我们的读取要求时,通过传入一个编辑接口,可以对单元格值自定义,例如对数字和日期类型值转换为字符串等
      Parameters:
      cellEditor - 单元格值处理接口
      Returns:
      this
    • read

      public List<List<Object>> read()
      读取工作簿中指定的Sheet的所有行列数据
      Returns:
      行的集合, 一行使用List表示
    • read

      public List<List<Object>> read(int startRowIndex)
      读取工作簿中指定的Sheet
      Parameters:
      startRowIndex - 起始行(包含,从0开始计数)
      Returns:
      行的集合, 一行使用List表示
    • read

      public List<List<Object>> read(int startRowIndex, int endRowIndex)
      读取工作簿中指定的Sheet
      Parameters:
      startRowIndex - 起始行(包含,从0开始计数)
      endRowIndex - 结束行(包含,从0开始计数)
      Returns:
      行的集合, 一行使用List表示
    • read

      public <T> T read(SheetReader<T> sheetReader)
      读取数据为指定类型
      Type Parameters:
      T - 读取数据类型
      Parameters:
      sheetReader - SheetReader实现
      Returns:
      数据读取结果
    • read

      public void read(org.aoju.bus.core.lang.function.XBiConsumer<org.apache.poi.ss.usermodel.Cell,Object> cellHandler)
      读取工作簿中指定的Sheet,此方法为类流处理方式,当读到指定单元格时,会调用CellEditor接口 用户通过实现此接口,可以更加灵活的处理每个单元格的数据
      Parameters:
      cellHandler - 单元格处理器,用于处理读到的单元格及其数据
    • read

      public List<List<Object>> read(int startRowIndex, int endRowIndex, boolean aliasFirstLine)
      读取工作簿中指定的Sheet
      Parameters:
      startRowIndex - 起始行(包含,从0开始计数)
      endRowIndex - 结束行(包含,从0开始计数)
      aliasFirstLine - 是否首行作为标题行转换别名
      Returns:
      行的集合,一行使用List表示
    • read

      public void read(int startRowIndex, int endRowIndex, org.aoju.bus.core.lang.function.XBiConsumer<org.apache.poi.ss.usermodel.Cell,Object> cellHandler)
      读取工作簿中指定的Sheet,此方法为类流处理方式,当读到指定单元格时,会调用CellEditor接口 用户通过实现此接口,可以更加灵活的处理每个单元格的数据
      Parameters:
      startRowIndex - 起始行(包含,从0开始计数)
      endRowIndex - 结束行(包含,从0开始计数)
      cellHandler - 单元格处理器,用于处理读到的单元格及其数据
    • read

      public List<Map<String,Object>> read(int headerRowIndex, int startRowIndex, int endRowIndex)
      读取Excel为Map的列表 Map表示一行,标题为key,单元格内容为value
      Parameters:
      headerRowIndex - 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略
      startRowIndex - 起始行(包含,从0开始计数)
      endRowIndex - 读取结束行(包含,从0开始计数)
      Returns:
      Map的列表
    • read

      public <T> List<T> read(int headerRowIndex, int startRowIndex, Class<T> beanType)
      读取Excel为Bean的列表
      Type Parameters:
      T - Bean类型
      Parameters:
      headerRowIndex - 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略,从0开始计数
      startRowIndex - 起始行(包含,从0开始计数)
      beanType - 每行对应Bean的类型
      Returns:
      Map的列表
    • read

      public <T> List<T> read(int headerRowIndex, int startRowIndex, int endRowIndex, Class<T> beanType)
      读取Excel为Bean的列表
      Type Parameters:
      T - Bean类型
      Parameters:
      headerRowIndex - 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略,,从0开始计数
      startRowIndex - 起始行(包含,从0开始计数)
      endRowIndex - 读取结束行(包含,从0开始计数)
      beanType - 每行对应Bean的类型
      Returns:
      Map的列表
    • readAll

      public List<Map<String,Object>> readAll()
      读取Excel为Map的列表,读取所有行,默认第一行做为标题,数据从第二行开始 Map表示一行,标题为key,单元格内容为value
      Returns:
      Map的列表
    • readAll

      public <T> List<T> readAll(Class<T> beanType)
      读取Excel为Bean的列表,读取所有行,默认第一行做为标题,数据从第二行开始
      Type Parameters:
      T - Bean类型
      Parameters:
      beanType - 每行对应Bean的类型
      Returns:
      Map的列表
    • getExtractor

      public org.apache.poi.ss.extractor.ExcelExtractor getExtractor(org.apache.poi.ss.usermodel.Workbook wb)
      获取 ExcelExtractor 对象
      Parameters:
      wb - 工作薄
      Returns:
      ExcelExtractor
    • readAsText

      public String readAsText(org.apache.poi.ss.usermodel.Workbook wb, boolean withSheetName)
      读取为文本格式 使用ExcelExtractor 提取Excel内容
      Parameters:
      wb - Workbook
      withSheetName - 是否附带sheet名
      Returns:
      Excel文本
    • readRow

      public List<Object> readRow(int rowIndex)
      读取某一行数据
      Parameters:
      rowIndex - 行号,从0开始
      Returns:
      一行数据
    • readCellValue

      public Object readCellValue(int x, int y)
      读取某个单元格的值
      Parameters:
      x - X坐标,从0计数,既列号
      y - Y坐标,从0计数,既行号
      Returns:
      值, 如果单元格无值返回null
    • getWriter

      public ExcelWriter getWriter()
      获取Excel写出器 在读取Excel并做一定编辑后,获取写出器写出
      Returns:
      ExcelWriter