欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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();
				}
			}
		}
	}
}