mirror of https://gitee.com/stylefeng/roses
commit
f502a152c9
|
@ -61,10 +61,21 @@ public interface OfficeExcelApi {
|
||||||
* @param inputStream 流输入Excel文件的流对象
|
* @param inputStream 流输入Excel文件的流对象
|
||||||
* @param clazz 每行数据转换成的对象类
|
* @param clazz 每行数据转换成的对象类
|
||||||
* @return 对象类List集合
|
* @return 对象类List集合
|
||||||
*
|
|
||||||
* @author luojie
|
* @author luojie
|
||||||
* @date 2020/11/4 13:54
|
* @date 2020/11/4 13:54
|
||||||
*/
|
*/
|
||||||
<T> List<T> easyReadToList(InputStream inputStream, Class<T> clazz);
|
<T> List<T> easyReadToList(InputStream inputStream, Class<T> clazz);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简单的读取Excel文件并返回实体类List集合-针对多行表头
|
||||||
|
*
|
||||||
|
* @param inputStream 流输入Excel文件的流对象
|
||||||
|
* @param clazz 每行数据转换成的对象类
|
||||||
|
* @param rowNum 表头所占行数
|
||||||
|
* @return 对象类List集合
|
||||||
|
* @author yxx
|
||||||
|
* @date 2022/8/11 10:37
|
||||||
|
*/
|
||||||
|
<T> List<T> easyReadToList(InputStream inputStream, Integer rowNum, Class<T> clazz);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,30 @@ public class OfficeExcel implements OfficeExcelApi {
|
||||||
return readListener.getDataList();
|
return readListener.getDataList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> List<T> easyReadToList(InputStream inputStream, Integer rowNum, Class<T> clazz) {
|
||||||
|
if (inputStream == null) {
|
||||||
|
return new ArrayList<T>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个简单的数据监听器
|
||||||
|
SimpleDataListener<T> readListener = new SimpleDataListener<T>();
|
||||||
|
|
||||||
|
// 读取文件
|
||||||
|
try {
|
||||||
|
EasyExcel.read(inputStream, clazz, readListener).sheet().headRowNumber(rowNum).doRead();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
|
||||||
|
// 组装提示信息
|
||||||
|
String userTip = OfficeExceptionEnum.OFFICE_ERROR.getUserTip();
|
||||||
|
String finalUserTip = StrUtil.format(userTip, e.getMessage());
|
||||||
|
throw new OfficeException(OfficeExceptionEnum.OFFICE_ERROR.getErrorCode(), finalUserTip);
|
||||||
|
}
|
||||||
|
|
||||||
|
return readListener.getDataList();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void easyWriteToFile(ExcelExportParam excelExportParam) {
|
public void easyWriteToFile(ExcelExportParam excelExportParam) {
|
||||||
|
|
||||||
|
@ -122,7 +146,7 @@ public class OfficeExcel implements OfficeExcelApi {
|
||||||
response.setContentType("application/vnd.ms-excel");
|
response.setContentType("application/vnd.ms-excel");
|
||||||
response.setCharacterEncoding("utf-8");
|
response.setCharacterEncoding("utf-8");
|
||||||
String fileName = URLEncoder.encode(excelExportParam.getFileName(), "UTF-8").replaceAll("\\+", "%20");
|
String fileName = URLEncoder.encode(excelExportParam.getFileName(), "UTF-8").replaceAll("\\+", "%20");
|
||||||
response.setHeader("Content-disposition", String.format("%s%s", "attachment;filename*=utf-8''", fileName, excelTypeEnum.getValue()));
|
response.setHeader("Content-disposition", String.format("%s%s%s", "attachment;filename*=utf-8''", fileName, excelTypeEnum.getValue()));
|
||||||
|
|
||||||
EasyExcel.write(response.getOutputStream(), excelExportParam.getClazz()).excelType(excelTypeEnum).sheet(excelExportParam.getSheetName()).doWrite(excelExportParam.getDataList());
|
EasyExcel.write(response.getOutputStream(), excelExportParam.getClazz()).excelType(excelTypeEnum).sheet(excelExportParam.getSheetName()).doWrite(excelExportParam.getDataList());
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue