springboot项目导入使用easypoi导入excel模板导出

easypoi独特功能:
  • 基于注解的导入导出,修改注解就可以修改Excel
  • 支持常用的样式自定义
  • 基于map可以灵活定义的表头字段
  • 支持一堆多的导出,导入
  • 支持模板的导出,一些常见的标签,自定义标签
  • 支持HTML/Excel转换,如果模板还不能满足用户的变态需求,请用这个功能
  • 支持word的导出,支持图片,Excel
使用:
1.在pom.xml文件导入相关依赖:
<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>

2.新建xls或者xlsx文件,设置模版(或直接下载一个excel模版)
自建使用规则如下:
  • 空格分割
  • 三目运算 {{test ? obj:obj2}}
  • n: 表示 这个cell是数值类型 {{n:}}
  • le: 代表长度{{le:()}} 在if/else 运用{{le:() > 8 ? obj1 : obj2}}
  • fd: 格式化时间 {{fd:(obj;yyyy-MM-dd)}}
  • fn: 格式化数字 {{fn:(obj;###.00)}}
  • fe: 遍历数据,创建row
  • !fe: 遍历数据不创建row
  • $fe: 下移插入,把当前行,下面的行全部下移.size()行,然后插入
  • #fe: 横向遍历
  • v_fe: 横向遍历值
  • !if: 删除当前列 {{!if:(test)}}
  • 单引号表示常量值 '' 比如'1' 那么输出的就是 1
  • &NULL& 空格
  • ]] 换行符 多行遍历导出
  • sum: 统计数据
导入模板例子:
3.新建util.class文件或者在test文件下试用,当前为在test文件下用例试用,代码如下:
@Test
    public void fe_map() throws Exception {
        TemplateExportParams params = new TemplateExportParams(
                "F:/pictures/mode.xlsx");
//导入目标模板文件,"F:/pictures/mode.xlsx"内容换成模版文件path即可
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("type", "个人");
        map.put("rise", "张三");
        map.put("identityNumber", "320101199901010000");
        map.put("uincode", "2021205503262");
        map.put("itemId", "");
        map.put("name", "上海+东方明珠+黄浦江游船+外滩+南京路步行街+城隍庙旅游区1天跟团游");
        map.put("number", "2");
        map.put("fee", 938.00);
        map.put("date", "2024-04-29");
        map.put("totalPrice", 1876.00);
//对应数据存入map,map的key需要与表格内{{&name}} &name内容一致,value为填充内容
        Workbook workbook = ExcelExportUtil.exportExcel(params, map);
//填充模版内容
        File savefile = new File("F:/pictures/");
        if (!savefile.exists()) {
            savefile.mkdirs();
        }
        FileOutputStream fos = new FileOutputStream("F:/pictures/test_map.xlsx");
        workbook.write(fos);
//导出填充后文件为xlsx文件,"F:/pictures/"和"F:/pictures/test_map.xlsx"换成自己的目标文件路径即可
        fos.close();
    }

4.导出为pdf文件
    @Test
    public void fe_map() throws Exception {
        TemplateExportParams params = new TemplateExportParams(
                "F:/pictures/mode.xlsx");
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("type", "个人");
        map.put("rise", "张三");
        map.put("identityNumber", "320101199901010000");
        map.put("uincode", "2021205503262");
        map.put("itemId", "");
        map.put("name", "上海+东方明珠+黄浦江游船+外滩+南京路步行街+城隍庙旅游区1天跟团游");
        map.put("number", "2");
        map.put("fee", 938.00);
        map.put("date", "2024-04-29");
        map.put("totalPrice", 1876.00);
        Workbook workbook = ExcelExportUtil.exportExcel(params, map);
//跟上述代码从这里开始有区别
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        workbook.write(outputStream);
        ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
        com.spire.xls.Workbook workbook1 = new com.spire.xls.Workbook();
        workbook1.loadFromStream(inputStream);
        //pdf 自适应屏幕大小
        workbook1.getConverterSetting().setSheetFitToWidth(true);
        workbook1.saveToFile("F:/pictures/test_map.pdf");
    }

导出pdf文件需要下载一个jar包导入到自己的项目中,目前是jar包导入到IDEA内的springboot项目过程。
下载jar包到本地, spire.xls.free-3.9.1.jar
点击这个蓝字path内容就是可以下载。
在项目resource文件夹下新建一个jar文件夹,移动下载的jar包到该文件夹下
在pom.xml文件中引入依赖
<dependency>
    <groupId>spire.xls.free</groupId>
    <artifactId>spire</artifactId>
    <version>3.9.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}\src\main\resources\jar\spire.xls.free-3.9.1.jar</systemPath>
</dependency>

更新一下maven即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值