public class ExcelUtils extends Object
| 构造器和说明 |
|---|
ExcelUtils() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> List<T> |
read(File file,
Class<T> cls)
读取excel返回指定的对象集合
此方法只读取第一个sheet页。
|
static <T> List<T> |
read(File file,
Class<T> cls,
int sheet)
读取指定的excel sheet页 返回指定的对象集合
此方法从第一行数据开始读取
例:
ExcelUtils.read(new File("测试.xlsx"), Student1.class,1); returns List<Student1>
|
static <T> List<T> |
read(File file,
Class<T> cls,
int sheet,
int headRowNumber)
根据指定的sheet页从指定的行开始读 返回指定的对象集合
注意此方法要转成的对象的属性 应该按照表头属性书写,或者给属性设置 @ExcelProperty(index = 3) index。
|
static void |
read(File file,
Class cls,
com.alibaba.excel.read.listener.ReadListener readListener)
根据自定义监听器读取excel
此方法只读取第一个sheet页。
|
static <T> List<T> |
read(InputStream inputStream,
Class<T> cls)
读取excel返回指定的对象集合
此方法只读取第一个sheet页。
|
static <T> List<T> |
readAllSheet(File file,
Class<T> cls)
读取excel 所有的sheet页 返回指定的对象集合
此方法从第一行数据开始读取
例:
ExcelUtils.read(new File("测试.xlsx"), Student1.class,1); returns List<Student1>
|
static <T> void |
write(File file,
Class<T> cls,
List<T> t)
默认写入指定的文件的第一个sheet页
|
static <T> void |
write(File file,
Class<T> cls,
List<T> t,
String sheetName,
Set<String> includeColumnSet)
指定sheet页写如指定的列。
|
static <T> void |
write(OutputStream outputStream,
Class<T> cls,
List<T> t)
通过输入流写入该方法适合web端下载
例:
public void download(HttpServletResponse response) throws IOException {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
ExcelUtils.write(response.getOutputStream(), DownloadData.class,data);
}
|
static <T> void |
write(String path,
Class<T> cls,
List<T> t)
根据文件路径默认写入指定的文件的第一个sheet页
|
static <T> void |
writeByExcludeColumn(File file,
Class<T> cls,
List<T> t,
Set<String> excludeColumnSet)
默认写入指定的文件的第一个sheet页忽略掉指定的列
|
static <T> void |
writeByIncludeColumn(File file,
Class<T> cls,
List<T> t,
Set<String> includeColumnSet)
默认写入指定的文件的第一个sheet页,只写入指定的列
|
public static <T> List<T> read(File file, Class<T> cls)
读取excel返回指定的对象集合 此方法只读取第一个sheet页。从第一行数据开始读取 例:
ExcelUtils.read(new File("测试.xlsx"), Student1.class); returns List<Student1>
T - 泛型file - 要读取的excelcls - 读取转换对象clspublic static <T> List<T> read(File file, Class<T> cls, int sheet)
读取指定的excel sheet页 返回指定的对象集合 此方法从第一行数据开始读取 例:
ExcelUtils.read(new File("测试.xlsx"), Student1.class,1); returns List<Student1>
T - 泛型file - 要读取的excelcls - 读取转换对象clssheet - 需要读取sheet页码,默认为0,起始值为0public static <T> List<T> read(File file, Class<T> cls, int sheet, int headRowNumber)
根据指定的sheet页从指定的行开始读 返回指定的对象集合 注意此方法要转成的对象的属性 应该按照表头属性书写,或者给属性设置 @ExcelProperty(index = 3) index。 如果index 和name 混用会产生不能赋值的问题 例:
ExcelUtils.read(new File("测试.xlsx"), Student1.class,1); returns List<Student1>
T - 泛型file - 要读取的excelcls - 读取转换对象clssheet - 需要读取sheet页码,默认为0,起始值为0headRowNumber - 行头的行数 例如headRowNumber=2则读取数据从第3行还是读取public static <T> List<T> readAllSheet(File file, Class<T> cls)
读取excel 所有的sheet页 返回指定的对象集合 此方法从第一行数据开始读取 例:
ExcelUtils.read(new File("测试.xlsx"), Student1.class,1); returns List<Student1>
T - 泛型file - 要读取的excelcls - 读取转换对象clspublic static <T> List<T> read(InputStream inputStream, Class<T> cls)
读取excel返回指定的对象集合 此方法只读取第一个sheet页。从第一行数据开始读取 该方法主要针对web端上传使用 MultipartFile file 例:
ExcelUtils.read(file.getInputStream(), Student1.class); returns List<Student1>
T - 泛型inputStream - 文件流cls - 读取转换对象clspublic static void read(File file, Class cls, com.alibaba.excel.read.listener.ReadListener readListener)
根据自定义监听器读取excel 此方法只读取第一个sheet页。从第一行数据开始读取
file - 要读取的文件cls - 要转换的classreadListener - 监听器public static <T> void write(File file, Class<T> cls, List<T> t)
默认写入指定的文件的第一个sheet页
file - 要写入的文件cls - 写入指定的classt - 要写入的数据public static <T> void write(String path, Class<T> cls, List<T> t)
根据文件路径默认写入指定的文件的第一个sheet页
path - 文件路径cls - 写入指定的classt - 要写入的数据public static <T> void writeByExcludeColumn(File file, Class<T> cls, List<T> t, Set<String> excludeColumnSet)
默认写入指定的文件的第一个sheet页忽略掉指定的列
file - 文件cls - 写入指定的classexcludeColumnSet - 忽略的字段t - 要写入的数据public static <T> void writeByIncludeColumn(File file, Class<T> cls, List<T> t, Set<String> includeColumnSet)
默认写入指定的文件的第一个sheet页,只写入指定的列
file - 文件cls - 写入指定的classincludeColumnSet - 指定的字段集合t - 要写入的数据public static <T> void write(File file, Class<T> cls, List<T> t, String sheetName, Set<String> includeColumnSet)
指定sheet页写如指定的列。如果不指定则写入全部的列
file - 文件cls - 写入指定的classsheetName - sheet名称includeColumnSet - 指定的字段集合t - 要写入的数据public static <T> void write(OutputStream outputStream, Class<T> cls, List<T> t)
通过输入流写入该方法适合web端下载 例:
public void download(HttpServletResponse response) throws IOException {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
ExcelUtils.write(response.getOutputStream(), DownloadData.class,data);
}
outputStream - 输入流cls - clazzt - 泛型对象Copyright © 2021. All rights reserved.