easypoi,主打的功能就是容易,通过简单的配置,就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
cn.afterturn
easypoi-spring-boot-starter
4.2.0
org.projectlombok
lombok
模拟数据库的表字段
@Excel注解:
name:对应生成excel中的字段标题
orderNum:默认从0开始,按照顺序依次排序
width:设置生成字段的宽度
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@Excel(name = "姓名",orderNum = "0",width = 15)
private String name;
@Excel(name = "电话",orderNum = "1",width = 15)
private String phone;
@Excel(name = "性别",orderNum = "2",width = 15)
private String gender;
}
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 cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import org.apache.commons.lang3.StringUtils;
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.io.InputStream;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
public class ExcelUtils {
/**
* excel 导出
*
* @param list 数据
* @param title 标题
* @param sheetName sheet名称
* @param pojoClass pojo类型
* @param fileName 文件名称
* @param isCreateHeader 是否创建表头
* @param response
*/
public static void exportExcel(List> list, String title, String sheetName, Class> pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response) throws IOException {
ExportParams exportParams = new ExportParams(title, sheetName, ExcelType.XSSF);
exportParams.setCreateHeadRows(isCreateHeader);
defaultExport(list, pojoClass, fileName, response, exportParams);
}
/**
* excel 导出
*
* @param list 数据
* @param title 标题
* @param sheetName sheet名称
* @param pojoClass pojo类型
* @param fileName 文件名称
* @param response
*/
public static void exportExcel(List> list, String title, String sheetName, Class> pojoClass, String fileName, HttpServletResponse response) throws IOException {
defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF));
}
/**
* excel 导出
*
* @param list 数据
* @param pojoClass pojo类型
* @param fileName 文件名称
* @param response
* @param exportParams 导出参数
*/
public static void exportExcel(List> list, Class> pojoClass, String fileName, ExportParams exportParams, HttpServletResponse response) throws IOException {
defaultExport(list, pojoClass, fileName, response, exportParams);
}
/**
* excel 导出
*
* @param list 数据
* @param fileName 文件名称
* @param response
*/
public static void exportExcel(List
手动模拟输入数据
@RestController
public class ExportExcelController {
@GetMapping(value = "/export")
public void exportExcel(HttpServletResponse response) throws IOException {
List personList = new ArrayList<>();
User user = new User("tom","1223132","男");
User user1 = new User("jim","123425534","女");
personList.add(user);
personList.add(user1);
ExcelUtils.exportExcel(personList, "员工信息表", "员工信息", User.class, "员工信息", response);
}
}