欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

java語(yǔ)言

java將excel文件轉(zhuǎn)換成pdf文件的方法

時(shí)間:2025-05-22 23:47:23 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

java將excel文件轉(zhuǎn)換成pdf文件的方法

  java將excel文件轉(zhuǎn)換成pdf文件的原理是使用POI來(lái)讀取excel的內(nèi)容,將其寫到pdf文件中。實(shí)現(xiàn)難度有點(diǎn)大,主要是因?yàn)閑xcel sheet結(jié)構(gòu)不固定,內(nèi)容也不固定,可能存在圖片等,導(dǎo)致讀excel比較復(fù)雜,真正實(shí)現(xiàn)還是比較復(fù)雜的。下面是小編為大家?guī)?lái)的java將excel文件轉(zhuǎn)換成pdf文件的方法,歡迎閱讀。

  java將excel文件轉(zhuǎn)換成pdf文件的方法

  最近做一個(gè)項(xiàng)目,需要把excel文件轉(zhuǎn)換成pdf文件,經(jīng)過(guò)我查資料,無(wú)非使用兩種方式:1 POI+Itext 2 Jacob來(lái)調(diào)用excel另存功能。

  第一種方式,原理是使用POI來(lái)讀取excel的內(nèi)容,將其寫到pdf文件中。實(shí)現(xiàn)難度有點(diǎn)大,主要是因?yàn)閑xcel sheet結(jié)構(gòu)不固定,內(nèi)容也不固定,可能存在圖片等,導(dǎo)致讀excel比較復(fù)雜,真正實(shí)現(xiàn)還是比較復(fù)雜的。

  第二種方式,原來(lái)是使用jacob來(lái)調(diào)用excel文件的另存為pdf的功能。主要是熟悉jacob的API即可。不需要精巧的編程技巧。

  本文使用第二種方式,使用這種方式,需要在當(dāng)前環(huán)境中安裝office,pdf軟件。建議安裝office 2010版本。如果安裝的07版本,還需要安裝一個(gè)excel插件(SaveAsPDFand XPS.exe) 這個(gè)插件是微軟官方的,鏈接如下:微軟官方

  package com.bplead.module.sign.util;

  import com.jacob.activeX.ActiveXComponent;

  import com.jacob.com.Dispatch;

  import com.jacob.com.Variant;

  public class TransferTool {

  public static void els2pdf(String els,String pdf){

  System.out.println("Starting excel...");

  long start = System.currentTimeMillis();

  ActiveXComponent app = new ActiveXComponent("Excel.Application");

  try {

  app.setProperty("Visible",false);

  Dispatch workbooks = app.getProperty("Workbooks").toDispatch();

  System.out.println("opening document:" + els);

  Dispatch workbook = Dispatch.invoke(workbooks, "Open", Dispatch.Method, new Object[]{els, new Variant(false),new Variant(false)}, new int[3]).toDispatch();

  Dispatch.invoke(workbook, "SaveAs", Dispatch.Method, 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);

  System.out.println("to pdf " + pdf);

  Dispatch.call(workbook, "Close", f);

  long end = System.currentTimeMillis();

  System.out.println("completed..used:" + (end - start)/1000 + " s");

  } catch (Exception e) {

  System.out.println("========Error:Operation fail:" + e.getMessage());

  }finally {

  if (app != null){

  app.invoke("Quit", new Variant[] {});

  }

  }

  }

  public static void main(String[] args) {

  els2pdf("f:ProjectTemplate.xlsx","f:pdf.pdf");

  }

  }

  運(yùn)行以上環(huán)境,需要下載jacob的包,該包還包含2個(gè)dll文件,一個(gè)是jacob-1.17-x64.dll,這個(gè)是64位的,還有一個(gè)是jacob-1.17-x86.dll文件,這個(gè)是32位的。將jar包包含到classpath目錄,dll文件包含到j(luò)re/bin目錄即可

  【拓展】excel識(shí)別PDF

  打開(kāi)excel;

  1.1 點(diǎn)擊[數(shù)據(jù)];

  1.2 點(diǎn)擊[獲取數(shù)據(jù)];

  1.3 點(diǎn)擊[來(lái)自文件];

  1.4 點(diǎn)擊[來(lái)自PDF];

  2.1 選中要轉(zhuǎn)換的文件;

  2.2 導(dǎo)入

  3.1 選中要讀取的區(qū)域;

  3.2 轉(zhuǎn)換數(shù)據(jù);

  刪除沒(méi)有數(shù)值的空列;

  5.1 選中需要拆分的列;

  5.2 點(diǎn)擊[拆分列];

  5.3 點(diǎn)擊[按分隔符];

  點(diǎn)擊[確定];

  把錯(cuò)誤的標(biāo)題重命名;

  點(diǎn)擊[關(guān)閉并上載],完成操作!

【java將excel文件轉(zhuǎn)換成pdf文件的方法】相關(guān)文章:

java讀文件寫文件的方法06-24

Java寫入文件的方法05-24

恢復(fù)損壞的Excel文件的方法08-06

java調(diào)用bat文件的方法08-09

如何編輯pdf文件10-02

php操作excel文件的方法小結(jié)11-05

講述java讀取properties文件的方法08-13

java寫入文件的幾種方法11-05

java寫入文件的方法有哪些10-05