SpringBoot读取上传Excel的数据(3)
ExcelUtil(hutool工具的简单使用)
public class ExcelUtil extends Object
Excel工具类,不建议直接使用index直接操作sheet,在wps/excel中sheet显示顺序与index无关,还有隐藏sheet
修饰符和类型 | 方法和说明 |
---|---|
static int | colNameToIndex(String colName) 根据表元的列名转换为列号 |
static ExcelWriter | getBigWriter() 获得BigExcelWriter ,默认写出到第一个sheet 不传入写出的Excel文件路径,只能调用ExcelWriter#flush(OutputStream)方法写出到流 若写出到文件,还需调用ExcelWriter.setDestFile(File) 方法自定义写出的文件,然后调用ExcelWriter.flush() 方法写出到文件 |
static BigExcelWriter | getBigWriter(File destFile) 获得BigExcelWriter ,默认写出到第一个sheet,名字为sheet1 |
static BigExcelWriter | getBigWriter(File destFile, String sheetName) 获得BigExcelWriter |
static ExcelWriter | getBigWriter(int rowAccessWindowSize) 获得BigExcelWriter ,默认写出到第一个sheet 不传入写出的Excel文件路径,只能调用ExcelWriter#flush(OutputStream)方法写出到流 若写出到文件,还需调用ExcelWriter.setDestFile(File) 方法自定义写出的文件,然后调用ExcelWriter.flush() 方法写出到文件 |
static BigExcelWriter | getBigWriter(String destFilePath) 获得BigExcelWriter ,默认写出到第一个sheet |
static BigExcelWriter | getBigWriter(String destFilePath, String sheetName) 获得BigExcelWriter |
static ExcelReader | getReader(File bookFile) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 默认调用第一个sheet |
static ExcelReader | getReader(File bookFile, int sheetIndex) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 |
static ExcelReader | getReader(File bookFile, String sheetName) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 |
static ExcelReader | getReader(InputStream bookStream) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 默认调用第一个sheet,读取结束自动关闭流 |
static ExcelReader | getReader(InputStream bookStream, boolean closeAfterRead) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 默认调用第一个sheet |
static ExcelReader | getReader(InputStream bookStream, int sheetIndex) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 读取结束自动关闭流 |
static ExcelReader | getReader(InputStream bookStream, int sheetIndex, boolean closeAfterRead) 荒废的。 使用完毕无论是否closeAfterRead,poi会关闭流,此参数无意义。 |
static ExcelReader | getReader(InputStream bookStream, String sheetName) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 读取结束自动关闭流 |
static ExcelReader | getReader(InputStream bookStream, String sheetName, boolean closeAfterRead) 荒废的。 使用完毕无论是否closeAfterRead,poi会关闭流,此参数无意义。 |
static ExcelReader | getReader(String bookFilePath) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 默认调用第一个sheet |
static ExcelReader | getReader(String bookFilePath, int sheetIndex) 获取Excel读取器,通过调用ExcelReader 的read或readXXX方法读取Excel内容 |
static ExcelWriter | getWriter() 获得ExcelWriter ,默认写出到第一个sheet 不传入写出的Excel文件路径,只能调用ExcelWriter#flush(OutputStream)方法写出到流 若写出到文件,还需调用ExcelWriter.setDestFile(File) 方法自定义写出的文件,然后调用ExcelWriter.flush() 方法写出到文件 |
static ExcelWriter | getWriter(boolean isXlsx) 获得ExcelWriter ,默认写出到第一个sheet 不传入写出的Excel文件路径,只能调用ExcelWriter#flush(OutputStream)方法写出到流 若写出到文件,还需调用ExcelWriter.setDestFile(File) 方法自定义写出的文件,然后调用ExcelWriter.flush() 方法写出到文件 |
static ExcelWriter | getWriter(File destFile) 获得ExcelWriter ,默认写出到第一个sheet,名字为sheet1 |
static ExcelWriter | getWriter(File destFile, String sheetName) 获得ExcelWriter |
static ExcelWriter | getWriter(String destFilePath) 获得ExcelWriter ,默认写出到第一个sheet |
static ExcelWriter | getWriter(String destFilePath, String sheetName) 获得ExcelWriter |
static ExcelWriter | getWriterWithSheet(String sheetName) 获得ExcelWriter ,默认写出到第一个sheet |
static String | indexToColName(int index) 将Sheet列号变为列名 |
static Excel03SaxReader | read03BySax(File file, int sheetIndex, RowHandler rowHandler) 荒废的。 请使用 readBySax(File, int, RowHandler) |
static Excel03SaxReader | read03BySax(InputStream in, int sheetIndex, RowHandler rowHandler) 荒废的。 请使用 readBySax(InputStream, int, RowHandler) |
static Excel03SaxReader | read03BySax(String path, int sheetIndex, RowHandler rowHandler) 荒废的。 请使用 readBySax(String, int, RowHandler) |
static Excel07SaxReader | read07BySax(File file, int rid, RowHandler rowHandler) 荒废的。 请使用 readBySax(File, int, RowHandler) |
static Excel07SaxReader | read07BySax(InputStream in, int rid, RowHandler rowHandler) 荒废的。 请使用 readBySax(InputStream, int, RowHandler) |
static Excel07SaxReader | read07BySax(String path, int rid, RowHandler rowHandler) 荒废的。 请使用 readBySax(String, int, RowHandler) |
static void | readBySax(File file, int rid, RowHandler rowHandler) 通过Sax方式读取Excel,同时支持03和07格式 |
static void | readBySax(File file, String idOrRid, RowHandler rowHandler) 通过Sax方式读取Excel,同时支持03和07格式 |
static void | readBySax(InputStream in, int rid, RowHandler rowHandler) 通过Sax方式读取Excel,同时支持03和07格式 |
static void | readBySax(InputStream in, String idOrRid, RowHandler rowHandler) 通过Sax方式读取Excel,同时支持03和07格式 |
static void | readBySax(String path, int rid, RowHandler rowHandler) 通过Sax方式读取Excel,同时支持03和07格式 |
static void | readBySax(String path, String idOrRid, RowHandler rowHandler) 通过Sax方式读取Excel,同时支持03和07格式 |
static CellLocation | toLocation(String locationRef) 将Excel中地址标识符(例如A11,B5)等转换为行列表示 例如:A11 -》 x:0,y:10,B5-》x:1,y:4 |
-
readBySax
public static void readBySax(String path, int rid, RowHandler rowHandler)
通过Sax方式读取Excel,同时支持03和07格式
-
Parameters:
path
- Excel文件路径rid
- sheet rid,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Since:
3.2.0
-
-
readBySax
public static void readBySax(String path, String idOrRid, RowHandler rowHandler)
通过Sax方式读取Excel,同时支持03和07格式
-
Parameters:
path
- Excel文件路径idOrRid
- Excel中的sheet id或者rid编号,rid必须加rId前缀,例如rId1,如果为-1处理所有编号的sheetrowHandler
- 行处理器 -
Since:
5.4.4
-
-
readBySax
public static void readBySax(File file, int rid, RowHandler rowHandler)
通过Sax方式读取Excel,同时支持03和07格式
-
Parameters:
file
- Excel文件rid
- sheet rid,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Since:
3.2.0
-
-
readBySax
public static void readBySax(File file, String idOrRid, RowHandler rowHandler)
通过Sax方式读取Excel,同时支持03和07格式
-
Parameters:
file
- Excel文件idOrRid
- Excel中的sheet id或者rid编号,rid必须加rId前缀,例如rId1,如果为-1处理所有编号的sheetrowHandler
- 行处理器 -
Since:
5.4.4
-
-
readBySax
public static void readBySax(InputStream in, int rid, RowHandler rowHandler)
通过Sax方式读取Excel,同时支持03和07格式
-
Parameters:
in
- Excel流rid
- sheet rid,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Since:
3.2.0
-
-
readBySax
public static void readBySax(InputStream in, String idOrRid, RowHandler rowHandler)
通过Sax方式读取Excel,同时支持03和07格式
-
Parameters:
in
- Excel流idOrRid
- Excel中的sheet id或者rid编号,rid必须加rId前缀,例如rId1,如果为-1处理所有编号的sheetrowHandler
- 行处理器 -
Since:
5.4.4
-
-
read07BySax
@Deprecated public static Excel07SaxReader read07BySax(InputStream in, int rid, RowHandler rowHandler)
Deprecated. 请使用
readBySax(InputStream, int, RowHandler)
Sax方式读取Excel07
-
Parameters:
in
- 输入流rid
- Sheet rid,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Returns:
-
Since:
3.2.0
-
-
read07BySax
@Deprecated public static Excel07SaxReader read07BySax(File file, int rid, RowHandler rowHandler)
Deprecated. 请使用
readBySax(File, int, RowHandler)
Sax方式读取Excel07
-
Parameters:
file
- 文件rid
- Sheet rid,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Returns:
-
Since:
3.2.0
-
-
read07BySax
@Deprecated public static Excel07SaxReader read07BySax(String path, int rid, RowHandler rowHandler)
Deprecated. 请使用
readBySax(String, int, RowHandler)
Sax方式读取Excel07
-
Parameters:
path
- 路径rid
- Sheet rid,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Returns:
-
Since:
3.2.0
-
-
read03BySax
@Deprecated public static Excel03SaxReader read03BySax(InputStream in, int sheetIndex, RowHandler rowHandler)
Deprecated. 请使用
readBySax(InputStream, int, RowHandler)
Sax方式读取Excel03
-
Parameters:
in
- 输入流sheetIndex
- Sheet索引,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Returns:
-
Since:
3.2.0
-
-
read03BySax
@Deprecated public static Excel03SaxReader read03BySax(File file, int sheetIndex, RowHandler rowHandler)
Deprecated. 请使用
readBySax(File, int, RowHandler)
Sax方式读取Excel03
-
Parameters:
file
- 文件sheetIndex
- Sheet索引,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Returns:
-
Since:
3.2.0
-
-
read03BySax
@Deprecated public static Excel03SaxReader read03BySax(String path, int sheetIndex, RowHandler rowHandler)
Deprecated. 请使用
readBySax(String, int, RowHandler)
Sax方式读取Excel03
-
Parameters:
path
- 路径sheetIndex
- Sheet索引,-1表示全部Sheet, 0表示第一个SheetrowHandler
- 行处理器 -
Returns:
-
Since:
3.2.0
-
-
getReader
public static ExcelReader getReader(String bookFilePath)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容
默认调用第一个sheet-
Parameters:
bookFilePath
- Excel文件路径,绝对路径或相对于ClassPath路径 -
Returns:
-
Since:
3.1.1
-
-
getReader
public static ExcelReader getReader(File bookFile)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容
默认调用第一个sheet-
Parameters:
bookFile
- Excel文件 -
Returns:
-
-
getReader
public static ExcelReader getReader(String bookFilePath, int sheetIndex)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容-
Parameters:
bookFilePath
- Excel文件路径,绝对路径或相对于ClassPath路径sheetIndex
- sheet序号,0表示第一个sheet -
Returns:
-
Since:
3.1.1
-
-
getReader
public static ExcelReader getReader(File bookFile, int sheetIndex)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容-
Parameters:
bookFile
- Excel文件sheetIndex
- sheet序号,0表示第一个sheet -
Returns:
-
-
getReader
public static ExcelReader getReader(File bookFile, String sheetName)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容-
Parameters:
bookFile
- Excel文件sheetName
- sheet名,第一个默认是sheet1 -
Returns:
-
-
getReader
public static ExcelReader getReader(InputStream bookStream)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容
默认调用第一个sheet,读取结束自动关闭流-
Parameters:
bookStream
- Excel文件的流 -
Returns:
-
-
getReader
public static ExcelReader getReader(InputStream bookStream, boolean closeAfterRead)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容
默认调用第一个sheet-
Parameters:
bookStream
- Excel文件的流closeAfterRead
- 读取结束是否关闭流 -
Returns:
-
Since:
4.0.3
-
-
getReader
public static ExcelReader getReader(InputStream bookStream, int sheetIndex)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容
读取结束自动关闭流-
Parameters:
bookStream
- Excel文件的流sheetIndex
- sheet序号,0表示第一个sheet -
Returns:
-
-
getReader
@Deprecated public static ExcelReader getReader(InputStream bookStream, int sheetIndex, boolean closeAfterRead)
Deprecated. 使用完毕无论是否closeAfterRead,poi会关闭流,此参数无意义。
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容-
Parameters:
bookStream
- Excel文件的流sheetIndex
- sheet序号,0表示第一个sheetcloseAfterRead
- 读取结束是否关闭流 -
Returns:
-
Since:
4.0.3
-
-
getReader
public static ExcelReader getReader(InputStream bookStream, String sheetName)
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容
读取结束自动关闭流-
Parameters:
bookStream
- Excel文件的流sheetName
- sheet名,第一个默认是sheet1 -
Returns:
-
-
getReader
@Deprecated public static ExcelReader getReader(InputStream bookStream, String sheetName, boolean closeAfterRead)
Deprecated. 使用完毕无论是否closeAfterRead,poi会关闭流,此参数无意义。
获取Excel读取器,通过调用
ExcelReader
的read或readXXX方法读取Excel内容-
Parameters:
bookStream
- Excel文件的流sheetName
- sheet名,第一个默认是sheet1closeAfterRead
- 读取结束是否关闭流 -
Returns:
-
-
getWriter
public static ExcelWriter getWriter()
获得
ExcelWriter
,默认写出到第一个sheet
不传入写出的Excel文件路径,只能调用ExcelWriter#flush(OutputStream)方法写出到流
若写出到文件,还需调用ExcelWriter.setDestFile(File)
方法自定义写出的文件,然后调用ExcelWriter.flush()
方法写出到文件-
Returns:
-
Since:
3.2.1
-
-
getWriter
public static ExcelWriter getWriter(boolean isXlsx)
获得
ExcelWriter
,默认写出到第一个sheet
不传入写出的Excel文件路径,只能调用ExcelWriter#flush(OutputStream)方法写出到流
若写出到文件,还需调用ExcelWriter.setDestFile(File)
方法自定义写出的文件,然后调用ExcelWriter.flush()
方法写出到文件-
Parameters:
isXlsx
- 是否为xlsx格式 -
Returns:
-
Since:
3.2.1
-
-
getWriter
public static ExcelWriter getWriter(String destFilePath)
获得
ExcelWriter
,默认写出到第一个sheet-
Parameters:
destFilePath
- 目标文件路径 -
Returns:
-
-
getWriterWithSheet
public static ExcelWriter getWriterWithSheet(String sheetName)
获得
ExcelWriter
,默认写出到第一个sheet-
Parameters:
sheetName
- Sheet名 -
Returns:
-
Since:
4.5.18
-
-
getWriter
public static ExcelWriter getWriter(File destFile)
获得
ExcelWriter
,默认写出到第一个sheet,名字为sheet1-
Parameters:
destFile
- 目标文件 -
Returns:
-
-
getWriter
public static ExcelWriter getWriter(String destFilePath, String sheetName)
-
Parameters:
destFilePath
- 目标文件路径sheetName
- sheet表名 -
Returns:
-
-
getWriter
public static ExcelWriter getWriter(File destFile, String sheetName)
-
Parameters:
destFile
- 目标文件sheetName
- sheet表名 -
Returns:
-
-
getBigWriter
public static ExcelWriter getBigWriter()
获得
BigExcelWriter
,默认写出到第一个sheet
不传入写出的Excel文件路径,只能调用ExcelWriter#flush(OutputStream)方法写出到流
若写出到文件,还需调用ExcelWriter.setDestFile(File)
方法自定义写出的文件,然后调用ExcelWriter.flush()
方法写出到文件-
Returns:
-
Since:
4.1.13
-
-
getBigWriter
public static ExcelWriter getBigWriter(int rowAccessWindowSize)
获得
BigExcelWriter
,默认写出到第一个sheet
不传入写出的Excel文件路径,只能调用ExcelWriter#flush(OutputStream)方法写出到流
若写出到文件,还需调用ExcelWriter.setDestFile(File)
方法自定义写出的文件,然后调用ExcelWriter.flush()
方法写出到文件-
Parameters:
rowAccessWindowSize
- 在内存中的行数 -
Returns:
-
Since:
4.1.13
-
-
getBigWriter
public static BigExcelWriter getBigWriter(String destFilePath)
获得
BigExcelWriter
,默认写出到第一个sheet-
Parameters:
destFilePath
- 目标文件路径 -
Returns:
-
-
getBigWriter
public static BigExcelWriter getBigWriter(File destFile)
获得
BigExcelWriter
,默认写出到第一个sheet,名字为sheet1-
Parameters:
destFile
- 目标文件 -
Returns:
-
-
getBigWriter
public static BigExcelWriter getBigWriter(String destFilePath, String sheetName)
-
Parameters:
destFilePath
- 目标文件路径sheetName
- sheet表名 -
Returns:
-
-
getBigWriter
public static BigExcelWriter getBigWriter(File destFile, String sheetName)
-
Parameters:
destFile
- 目标文件sheetName
- sheet表名 -
Returns:
-
-
indexToColName
public static String indexToColName(int index)
将Sheet列号变为列名
-
Parameters:
index
- 列号, 从0开始 -
Returns:
0-》A; 1-》B…26-》AA
-
Since:
4.1.20
-
-
colNameToIndex
public static int colNameToIndex(String colName)
根据表元的列名转换为列号
-
Parameters:
colName
- 列名, 从A开始 -
Returns:
A1-》0; B1-》1…AA1-》26
-
Since:
4.1.20
-
-
toLocation
public static CellLocation toLocation(String locationRef)
将Excel中地址标识符(例如A11,B5)等转换为行列表示
例如:A11 -》 x:0,y:10,B5-》x:1,y:4-
Parameters:
locationRef
- 单元格地址标识符,例如A11,B5 -
Returns:
坐标点,x表示行,从0开始,y表示列,从0开始
-
Since:
5.1.4
-