Java通过easyPoi进行Excel表格导入导出
Java后端(Excel表格导入)
pom配置
<!--xls导入-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
<!--xls导入-->
工具类
package com.lenton.warehouse.common.util.easypoi;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.lenton.i18n.util.LanguageMessage;
import com.lenton.warehouse.common.error.CustomException;
import com.lenton.warehouse.common.result.HttpStatus;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
/**
* @Author: cmh
* @Date: 2019/7/1 15:33
*/
public class EasyPoiUtil {
/**
* Excel文件到java对象的转换
*
* @param filePath 物理磁盘绝对路径
* @param pojoClass 要转换的类对象
* @return java.util.List
*/
public static List excel2Object(String filePath, Class<?> pojoClass) {
ImportParams params = new ImportParams();
params.setHeadRows(1);
return ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
}
/**
* Excel文件到java对象的转换
*
* @param file 表格文件
* @param pojoClass 要转换的类对象
* @return java.util.List
*/
public static List excel2Object(MultipartFile file, Class<?> pojoClass) {
try {
ImportParams params = new ImportParams();
params.setHeadRows(1);
return ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
} catch (Exception e) {
//未知的错误
throw new CustomException(HttpStatus.SERVER_EXCEPTION, LanguageMessage.getMessage("systemException"));
}
}
/**
* 功能描述:复杂导出Excel,包括文件名以及表名,不创建表头
*
* @param list 导出的实体类
* @param pojoClass 映射的实体类
* @param fileName
* @param response
* @return
* @date 2018/10/9 13:54
*/
public static void exportExcel(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response) {
defaultExport(list, pojoClass, fileName, response);
}
/**
* 功能描述:默认导出方法
*
* @param list 导出的实体集合
* @param fileName 导出的文件名
* @param pojoClass pojo实体
* @param response
* @return
* @date 2018/10/9 13:54
*/
private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response) {
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(null, "sheet1"), pojoClass, list);
if (workbook != null) {
downLoadExcel(fileName, response, workbook);
}
}
/**
* 功能