前言
提示:万变不离其宗,代码仅供参考
一、功能需求
最近遇到一个需求: 要求将已获取到的数据通过Excel模板填充,导出为PDF格式文件。 通过搜集大量资料,也尝试了很多实例,都未能成功,现结合自己项目实际情况,贴出已实现功能代码,供大家参考。
二、使用步骤
1.引入依赖
代码如下(示例):
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>2.2.0</version>
</dependency>
<!-- easyexcel 依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.7</version>
</dependency>
复制代码
特别注意: 1.需要配置远程仓库。 2.引入依赖的时候只能引入一个,而且最好是引入.free版本,否则会有水印。 3.不要引入.pdf,否则会导致jar包相互冲突,报框架层面的问题。
2.实现方法
代码如下(示例):
FileUtil工具类封装了一些基本方法。
public class FileUtil {
//eccel转PDF方法
public static void ExcelToPdf(String fileName, String outfileName) throws Exception {
Workbook wb = new Workbook();
wb.loadFromFile(fileName);
wb.saveToFile(outfileName, FileFormat.PDF);
}
复制代码
3.具体实现
代码如下(示例):
public void simpleFill() throws Exception {
String templateFileName = "模板路径";
String fileName = "生成Excel文件路径";
//easyex提供的方法
ExcelWriter excelWriter = EasyExcel.write(fileName)
.withTemplate(templateFileName)
.build();
WriteSheet writeSheet = EasyExcel.writerSheet()
.build();
FillConfig fillConfig = FillConfig.builder()
.direction(WriteDirectionEnum.HORIZONTAL)
.build();
excelWriter.fill(data(), writeSheet);
excelWriter.finish();
String fileIn = "D:\\.....xlsx";
String fileOut = "D:\\.....pdf";
//传入的文件路径必须以双反斜杠的方式传入
FileUtil.ExcelToPdf(fileIn, fileOut);
}
复制代码
参考资料
1、e-iceblue 官网 www.e-iceblue.cn/tutorials.h…
2、easyexcel 官网 alibaba-easyexcel.github.io