Poi

PDF导入:

在这里插入图片描述
在pom.xml里面添加依赖

 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.1</version>
</dependency>
<!-- PDF导出-->
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13</version>
</dependency>

PDF实体类代码根据你的表格写入的

@Data
public class Form {
    private String time;
    private String driver;
    private int num;
    private String model;
    private String didian;
    private int money;
    private String project;
    private String yijian;
    private String shenpi;
    private String beizhu;
}

PDF写入代码如下

@RequestMapping(value = "poi",produces = {MediaType.APPLICATION_PDF_VALUE})
    public String exportPdf(@RequestBody(required = false) Form form, HttpServletResponse response) throws UnsupportedEncodingException {
        // 1.指定解析器
        System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
                "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
        String filename="车辆维修审批单.pdf";
        String path="d:/";
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", "attachment;fileName="
                + URLEncoder.encode(filename, "UTF-8"));
        OutputStream os = null;
        PdfStamper ps = null;
        PdfReader reader = null;
        try {
            os = response.getOutputStream();
            // 2 读入pdf表单
            reader = new PdfReader(path+ "/"+filename);
            // 3 根据表单生成一个新的pdf
            ps = new PdfStamper(reader, os);
            // 4 获取pdf表单
            AcroFields form$ = ps.getAcroFields();
            // 5给表单添加中文字体 这里采用系统字体。不设置的话,中文可能无法显示
            BaseFont bf = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",
                    BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
            form$.addSubstitutionFont(bf);
            // 6查询数据================================================
            Map<String, String> data = new HashMap<String, String>();
            data.put("time", form.getTime());
            data.put("driver", form.getDriver());
            data.put("num", String.valueOf(form.getNum()));
            data.put("model", form.getModel());
            data.put("didian", form.getDidian());
            data.put("money",String.valueOf(form.getMoney()));
            data.put("project", form.getProject());
            data.put("yijian", form.getYijian());
            data.put("shenpi", form.getShenpi());
            data.put("beizhu", form.getBeizhu());
            System.out.println(data);
            // 7遍历data 给pdf表单表格赋值
            for (String key : data.keySet()) {
                form$.setField(key,data.get(key).toString());
            }
            ps.setFormFlattening(true);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                ps.flush();
                os.flush();
                ps.close();
                reader.close();
                os.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }

启动项目执行:
在这里插入图片描述
看见写入就证明完成了

Excle导入:

新建实体类代码如下:

@Data
public class ExcelPoi {
    /**
     * 序号
     */
     //这个注解是你生成的xlsx文件的文件头的名称
    @ExcelProperty("序号")
    private Integer xuhao;
    /**
     * 姓名
     */
    @ExcelProperty("姓名")
    private String xingming;
    /**
     * 联系电话
     */
    @ExcelProperty("联系电话")
    private String lxdh;


}

代码写入:

public static void main(String[] args) {
        //实现excel写的操作,生成excel的内容
        //1.设置写入文件夹地址和excel文件名称
        String filename = "D:\\ExTest.xlsx";
        //2.调用easyEXcel里面的方法实现写操作
        //第一个参数是文件路径名称,第二个是参数实体类
        EasyExcel.write(filename , ExcelPoi.class).sheet("列表").doWrite(getData());
    }
    //创建方法使其返回list集合
    private static List<ExcelPoi> getData(){
        ArrayList<ExcelPoi> list = new ArrayList<>();
        for (int i = 1; i <10 ; i++) {
            ExcelPoi excelPoi = new ExcelPoi();
            excelPoi.setXuhao(i);
            excelPoi.setXingming("lyh"+i);
            excelPoi.setLxdh("1357895/"+i);
            list.add(excelPoi);
        }
        return list;
    }

执行代码:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值