先说导出 java代码
@SpringBootTest(classes = {ShujiegouApplication.class}) @RunWith(SpringJUnit4ClassRunner.class) public class EasyPoiExportTest { @Autowired private SysColumnService sysColumnService; @Test public void test() throws Exception{ List<SysColumn> sysColumnAll = sysColumnService.getSysColumnAll(); //标题 表名 导出类型 HSSF xls XSSF xlsx ExportParams exportParams = new ExportParams("栏目表","column", ExcelType.XSSF); //1.导出参数对象 1.普通Java类的类对象(要导出的实体类的类对象) 3.一个集合 查询全部的用户信息 Workbook workbook = ExcelExportUtil.exportExcel(exportParams, SysColumn.class,sysColumnAll); workbook.write(new FileOutputStream(new File("E://easypoi.xlsx"))); } }实体类代码
@Data @AllArgsConstructor @NoArgsConstructor @Table(name = "sys_column") public class SysColumn { @Id @Excel(name = "主键") private Integer id; @Excel(name = "列名") private String columnName; @Excel(name = "父id") private Integer parentId; @ExcelIgnore //忽略字段(属性) private Integer columnRank; @Excel(name = "跳转页面") private String enName; }效果图 期间出现了一个异常 java.lang.IllegalArgumentException: lastRow < firstRow || lastCol < firstCol 原因是实体类上我没有加入 Easypoi的相关注解(例如 @Excel等等),加上即可。
再说导入 java代码
@Test public void test1(){ //创建导入参数对象 ImportParams importParams = new ImportParams(); //设置标题占行数 importParams.setTitleRows(1); //设置表头占行数 importParams.setHeadRows(1); //参数:1,读取文件 2,对应的实体类 3,导入参数对象 List<SysColumn> sysColumns = ExcelImportUtil.importExcel(new File("E://easypoi.xlsx"), SysColumn.class, importParams); for (SysColumn sysColumn:sysColumns) { System.out.println(sysColumn); } }控制台输出来的结果 既然我们已经获取到了数据,接下来我们只要往数据库添加数据即可。
相较于之前写的poi是不是简单了很多呢?哈哈
这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!