使用easypoi 将数据库数据导出 以及将Excel表格数据导入数据库 第五版

先说导出
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是不是简单了很多呢?哈哈

这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!

欢迎加入技术群聊!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/taiguolaotu/article/details/107063992