java将excel文件转换成pdf文件的方法
java将excel文件转换成pdf文件的原理是使用POI来读取excel的内容,将其写到pdf文件中。实现难度有点大,主要是因为excel sheet结构不固定,内容也不固定,可能存在图片等,导致读excel比较复杂,真正实现还是比较复杂的。下面是小编为大家带来的java将excel文件转换成pdf文件的方法,欢迎阅读。
java将excel文件转换成pdf文件的方法最近做一个项目,需要把excel文件转换成pdf文件,经过我查资料,无非使用两种方式:1 POI+Itext 2 Jacob来调用excel另存功能。
第一种方式,原理是使用POI来读取excel的`内容,将其写到pdf文件中。实现难度有点大,主要是因为excel sheet结构不固定,内容也不固定,可能存在图片等,导致读excel比较复杂,真正实现还是比较复杂的。
第二种方式,原来是使用jacob来调用excel文件的另存为pdf的功能。主要是熟悉jacob的API即可。不需要精巧的编程技巧。
本文使用第二种方式,使用这种方式,需要在当前环境中安装office,pdf软件。建议安装office 2010版本。如果安装的07版本,还需要安装一个excel插件() 这个插件是微软官方的,链接如下:微软官方
package ;
import veXComponent;
import atch;
import ant;
public class TransferTool {
public static void els2pdf(String els,String pdf){
tln("Starting excel...");
long start = entTimeMillis();
ActiveXComponent app = new ActiveXComponent("ication");
try {
roperty("Visible",false);
Dispatch workbooks = roperty("Workbooks")spatch();
tln("opening document:" + els);
Dispatch workbook = ke(workbooks, "Open", od, new Object[]{els, new Variant(false),new Variant(false)}, new int[3])spatch();
ke(workbook, "SaveAs", od, new Object[] {
pdf, new Variant(57), new Variant(false),
new Variant(57), new Variant(57), new Variant(false),
new Variant(true), new Variant(57), new Variant(true),
new Variant(true), new Variant(true) }, new int[1]);
Variant f = new Variant(false);
tln("to pdf " + pdf);
(workbook, "Close", f);
long end = entTimeMillis();
tln(":" + (end - start)/1000 + " s");
} catch (Exception e) {
tln("========Error:Operation fail:" + essage());
}finally {
if (app != null){
ke("Quit", new Variant[] {});
}
}
}
public static void main(String[] args) {
els2pdf("f:","f:");
}
}
运行以上环境,需要下载jacob的包,该包还包含2个dll文件,一个是,这个是64位的,还有一个是文件,这个是32位的。将jar包包含到classpath目录,dll文件包含到jre/bin目录即可