java采用aspose将Excel转为PDF
程序员文章站
2024-01-21 18:13:28
...
package com.demo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import com.aspose.cells.License;
import com.aspose.cells.SaveFormat;
import com.aspose.cells.Workbook;
/**
* 由于ASPOSE比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)<br>
*/
public class Excel2PdfUtil {
/**
* @param args
*/
public static void main(String[] args) {
excel2Pdf("D://report.xls", "D://report.pdf");
}
/**
* 获取license
*
* @return
*/
private static boolean getLicense() {
boolean result = false;
try {
InputStream license = Excel2PdfUtil.class.getClassLoader().getResourceAsStream("\\license.xml");// license路径
License aposeLic = new License();
aposeLic.setLicense(license);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static void excel2Pdf(String excelPath, String pdfPath) {
long old = System.currentTimeMillis();
// 验证License
if (!getLicense()) {
return;
}
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try {
File excelFile = new File(excelPath);
if (excelFile.exists()) {
fileInputStream = new FileInputStream(excelFile);
Workbook workbook = new Workbook(fileInputStream);
File pdfFile = new File(pdfPath);
fileOutputStream = new FileOutputStream(pdfFile);
workbook.save(fileOutputStream, SaveFormat.PDF);
long now = System.currentTimeMillis();
System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒\n\n" + "文件保存在:" + pdfFile.getPath());
} else {
System.out.println("文件不存在");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}