最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)Excel轉(zhuǎn)PDF的兩種方法詳解

 更新時間:2022年01月28日 10:10:55   作者:灰小猿  
使用具將Excel轉(zhuǎn)為PDF的方法有很多,在這里我給大家介紹兩種常用的方法:使用spire轉(zhuǎn)化PDF、使用jacob實現(xiàn)Excel轉(zhuǎn)PDF,分別應(yīng)對兩種不一樣的使用場景,需要的可以參考一下

使用具將Excel轉(zhuǎn)為PDF的方法有很多,在這里我給大家介紹兩種常用的方法,分別應(yīng)對兩種不一樣的使用場景,接下來我在springboot環(huán)境下給大家做一下演示!

一、使用spire轉(zhuǎn)化PDF

首先介紹一種比較簡單的方法,這種方法可以使用短短的幾行代碼就可以將我們的Excel文件中的某一個sheet頁或者整個Excel文件轉(zhuǎn)為PDF格式,

但是這種方法有一個缺點就是這個jar包是收費的,只能導(dǎo)出3個sheet頁,不適合有多個sheet頁的Excel文件的轉(zhuǎn)換。

使用時首先在pom文件中導(dǎo)入workbook的所需依賴:

         <dependency>
             <groupId>e-iceblue</groupId>
             <artifactId>spire.xls.free</artifactId>
             <version>2.2.0</version>
         </dependency>

1、使用spire將整個Excel文件轉(zhuǎn)為PDF

使用workbook導(dǎo)出整個Excel文件的代碼只需要兩步,我們可以直接看代碼示例:

     /**
      * 使用spire簡單整個Excel轉(zhuǎn)換為pdf
      *
      * @param inputFilePath Excel文件路徑
      * @param outputFilePath 導(dǎo)出的PDF文件路徑
      */
     public static void totalExcelToPDF(String inputFilePath, String outputFilePath) {
         Workbook wb = new Workbook();
 //        引入Excel文件
         wb.loadFromFile(inputFilePath);
 //        導(dǎo)出PDF文件
         wb.saveToFile(outputFilePath, FileFormat.PDF);
     }

2、指定單個的sheet頁轉(zhuǎn)為PDF

使用spire可以將指定單個sheet頁面轉(zhuǎn)為PDF格式輸出,在這里需要輸入指定的sheet頁的下標(biāo)。代碼示例如下:

     /**
      * 使用spire將單個sheet轉(zhuǎn)成pdf
      *
      * @param inputFilePath Excel文件路徑
      * @param outputFilePath 導(dǎo)出的PDF文件路徑
      * @param sheetNum 導(dǎo)出的sheet頁下標(biāo)
      */
     public static void partExcelToPDF(String inputFilePath, String outputFilePath, int sheetNum) {
         //加載Excel文檔
         Workbook wb = new Workbook();
         wb.loadFromFile(inputFilePath);
         //獲取到哪一個sheet頁
         Worksheet sheet = wb.getWorksheets().get(sheetNum);
         //調(diào)用方法保存為PDF格式
         sheet.saveToPdf(outputFilePath);
     }

以上使用spire來實現(xiàn)Excel轉(zhuǎn)換PDF的方法雖然簡單,但是不適合于較大的Excel文件轉(zhuǎn)化,只適合有小于3個sheet頁的文件使用。

所以在企業(yè)項目開發(fā)中,如果想要將大批量的Excel文件或sheet頁較多的Excel文件整體轉(zhuǎn)化為PDF格式的話,還是推薦使用下面這種方法,而且這種方法使用穩(wěn)定還免費!

二、使用jacob實現(xiàn)Excel轉(zhuǎn)PDF(推薦使用)

1、環(huán)境準(zhǔn)備

在使用jacob之前需要做一些準(zhǔn)備,首先需要去下載jacob的壓縮包jacob.zip ,下載地址

解壓之后,得到如下內(nèi)容:

如果你是64位系統(tǒng)就用 x64的dll,32位系統(tǒng)就用x86的dll。之后我們需要將dll文件放入放入你的jdk的bin目錄下,如下圖所示:

這樣前期準(zhǔn)備工作就做好了,

接下來在在Maven中引入Jacob所需依賴:

         <!--jacob依賴-->
         <dependency>
             <groupId>com.jacob</groupId>
             <artifactId>jacob</artifactId>
             <version>1.19</version>
             <scope>system</scope>
             <!--本地的jacob.jar的路徑-->
             <systemPath>D:\DevInstall\jacob18,19\jacob-1.19\jacob.jar</systemPath>
         </dependency>

注意:上面依賴中標(biāo)簽的值就是你的jacob.jar的具體路徑,這個改成自己剛才下載的對應(yīng)的路徑就行了。

2、執(zhí)行導(dǎo)出PDF

執(zhí)行Excel導(dǎo)出PDF的方法如下:其中比較重要的地方進(jìn)行了注釋,方法可以直接拿來用即可!

 ?
     /**
      * 使用jacob實現(xiàn)excel轉(zhuǎn)PDF
      *
      * @param inputFilePath 導(dǎo)入Excel文件路徑
      * @param outputFilePath 導(dǎo)出PDF文件路徑
      */
     public static void jacobExcelToPDF(String inputFilePath, String outputFilePath) {
         ActiveXComponent ax = null;
         Dispatch excel = null;
 ?
         try {
             ComThread.InitSTA();
             ax = new ActiveXComponent("Excel.Application");
             ax.setProperty("Visible", new Variant(false));
 //        禁用宏
             ax.setProperty("AutomationSecurity", new Variant(3));
 ?
             Dispatch excels = ax.getProperty("Workbooks").toDispatch();
 ?
             Object[] obj = {
                     inputFilePath,
                     new Variant(false),
                     new Variant(false)
             };
 ?
             excel = Dispatch.invoke(excels, "Open", Dispatch.Method, obj, new int[9]).toDispatch();
 ?
 //        轉(zhuǎn)換格式
             Object[] obj2 = {
                     //                PDF格式等于0
                     new Variant(0),
                     outputFilePath,
                     //                0=標(biāo)準(zhǔn)(生成的PDF圖片不會模糊),1=最小的文件
                     new Variant(0)
             };
 ?
             Dispatch.invoke(excel, "ExportAsFixedFormat", Dispatch.Method, obj2, new int[1]);
 ?
         } catch (Exception e) {
             e.printStackTrace();
             throw e;
         } finally {
             if (excel != null) {
                 Dispatch.call(excel, "Close", new Variant(false));
             }
             if (ax != null) {
                 ax.invoke("Quit", new Variant[]{});
                 ax = null;
             }
             ComThread.Release();
         }
 ?
 ?
     }

以上就是在Java中將Excel導(dǎo)出為PDF最常用的兩種方法了,推薦使用第二種!

到此這篇關(guān)于Java實現(xiàn)Excel轉(zhuǎn)PDF的兩種方法詳解的文章就介紹到這了,更多相關(guān)Java Excel轉(zhuǎn)PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java三元表達(dá)式使用及注意事項詳解

    Java三元表達(dá)式使用及注意事項詳解

    這篇文章主要介紹了Java三元表達(dá)式使用及注意事項的相關(guān)資料,Java中的三元運算符是一種簡潔的條件語句,它可以根據(jù)一個條件來選擇兩個不同的值中的一個,適用于簡單的條件賦值場景,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Java中Stream流的使用示例詳解

    Java中Stream流的使用示例詳解

    Stream流提供了一種高效且易于使用的方式來對數(shù)據(jù)進(jìn)行過濾、映射、排序、聚合等操作,使代碼更加簡潔和可讀,接下來通過本文給大家介紹Java中Stream流的使用,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow)

    SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow)

    這篇文章主要介紹了SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 超詳細(xì)的IntelliJ IDEA的安裝及配置

    超詳細(xì)的IntelliJ IDEA的安裝及配置

    這篇文章主要介紹了超詳細(xì)的IntelliJ IDEA的安裝及配置,文中有非常詳細(xì)的圖文示例,對想要安裝IDEA的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • SpringBoot定時任務(wù)多實例互斥執(zhí)行的完整指南

    SpringBoot定時任務(wù)多實例互斥執(zhí)行的完整指南

    Spring Boot 的 @Scheduled 寫定時任務(wù)很方便,但多實例部署時有個問題,同一個定時任務(wù)會在每臺機器上都觸發(fā)執(zhí)行,下面我們就來看看如何解決吧
    2026-01-01
  • Java開發(fā)中POJO和JSON互轉(zhuǎn)時如何忽略隱藏字段的問題

    Java開發(fā)中POJO和JSON互轉(zhuǎn)時如何忽略隱藏字段的問題

    這篇文章主要介紹了Java開發(fā)中POJO和JSON互轉(zhuǎn)時如何忽略隱藏字段的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Java使用Knife4j優(yōu)化Swagger接口文檔的操作步驟

    Java使用Knife4j優(yōu)化Swagger接口文檔的操作步驟

    在現(xiàn)代微服務(wù)開發(fā)中,接口文檔的質(zhì)量直接影響了前后端協(xié)作效率,Swagger 作為一個主流的接口文檔工具,雖然功能強大,但其默認(rèn)界面和部分功能在實際使用中略顯不足,而 Knife4j 的出現(xiàn)為我們提供了一種增強的選擇,本篇文章將詳細(xì)介紹如何在項目中集成和使用 Knife4j
    2024-12-12
  • 詳解HTTP請求與響應(yīng)基礎(chǔ)及實例

    詳解HTTP請求與響應(yīng)基礎(chǔ)及實例

    這篇文章主要介紹了詳解HTTP請求與響應(yīng)基礎(chǔ)及實例的相關(guān)資料,這里對http的請求和響應(yīng)進(jìn)行詳細(xì)分析并附有實現(xiàn)實例,需要的朋友可以參考下
    2017-07-07
  • 解決分頁插件pagehelper在SpringBoot不起作用的問題

    解決分頁插件pagehelper在SpringBoot不起作用的問題

    這篇文章主要介紹了解決分頁插件pagehelper在SpringBoot不起作用的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java實現(xiàn)word文件轉(zhuǎn)html文件

    java實現(xiàn)word文件轉(zhuǎn)html文件

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)word文件轉(zhuǎn)html文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評論

正阳县| 永宁县| 始兴县| 廊坊市| 霍邱县| 佛学| 视频| 甘谷县| 东乌| 北辰区| 新郑市| 浙江省| 富源县| 乐陵市| 延津县| 凯里市| 阿拉善左旗| 合水县| 马公市| 手游| 富阳市| 永安市| 永平县| 伊宁市| 固原市| 中山市| 当雄县| 栖霞市| 望江县| 秦皇岛市| 北安市| 云霄县| 政和县| 高雄县| 营山县| 武鸣县| 珲春市| 蓝田县| 新安县| 青海省| 崇左市|