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;
}
执行代码: