每張工作表一頁:在 Java 中自動將試算表轉換為 PDF

如果你已厭倦手動將試算表轉換成 PDF,恭喜你來對地方了。
在本教學中,你將看到 GroupDocs.Conversion for Java 如何 自動化試算表轉換,同時提供精細的控制——例如僅載入所需的列,並產生 每張工作表一頁 的 PDF 輸出。完成後,你將了解如何:

  • 在載入活頁簿時指定儲存格範圍
  • 設定轉換器,使每張工作表成為單一 PDF 頁面
  • 使用最新的 GroupDocs.Conversion 函式庫設定你的 Java 專案

在深入程式碼之前,先把環境準備好。

快速解答

  • 「每張工作表一頁」是什麼意思? 來源 Excel 檔案中的每個工作表都會在產生的 PDF 中呈現為單一頁面。
  • 哪個函式庫負責轉換? GroupDocs.Conversion for Java(版本 25.2)。
  • 我需要授權嗎? 免費試用版可用於評估;正式環境則需臨時或購買授權。
  • 能有效轉換大型試算表嗎? 可以——只載入所需範圍即可降低記憶體使用並加快處理速度。
  • 需要哪個 Java 版本? JDK 8 或更新版本。

「每張工作表一頁」是什麼?

「每張工作表一頁」 表示轉換器會將每個工作表的全部內容壓縮至單一 PDF 頁面,無論該工作表包含多少列印區域。此方式確保頁數可預測,且非常適合報告或投影片式 PDF,讓每張工作表對應一個視覺頁面。

為什麼使用 GroupDocs.Conversion for Java?

GroupDocs.Conversion for Java 是一個 穩健且高效能 的轉換引擎。它支援 30 多種試算表格式(XLS、XLSX、CSV、ODS 等),並可在不將整個文件載入記憶體的情況下處理高達 500 MB 的檔案,得益於其串流架構。API 簡潔:只需少量方法呼叫,即可產生可直接投入生產的 PDF,且保留表格、圖表與儲存格格式。

前置條件

  • 已安裝 Java Development Kit (JDK) 8+
  • Maven(用於相依性管理)
  • IntelliJ IDEAEclipse 等 IDE
  • 具備基本的 Java 知識,並熟悉 Maven 專案結構

設定 GroupDocs.Conversion for Java

Maven 設定

將 GroupDocs 的儲存庫與 conversion 相依性加入你的 pom.xml

pom.xml 必須包含 <groupId>com.groupdocs</groupId> 的儲存庫條目以及 <artifactId>groupdocs-conversion</artifactId> 的相依性。檔案儲存後,執行 mvn clean install 以下載函式庫。

取得授權步驟

  • 免費試用 – 下載試用版以測試功能。
  • 臨時授權 – 於開發期間請求臨時授權以取得完整功能。
  • 購買 – 從 GroupDocs 官方網站 購買授權。

加入相依性後,即可開始使用 API:

Converter 是負責協調文件轉換的主要類別。匯入 com.groupdocs.conversion 套件,建立 Converter 實例,並呼叫相應的轉換方法。

如何以特定範圍載入試算表?

載入特定範圍會指示引擎忽略定義區域之外的列與欄,從而加快轉換速度並降低記憶體消耗。

setConvertRange 用於設定僅包含特定儲存格範圍的轉換。setConvertRange 方法接受類似 "A10:C30" 的範圍字串,並將轉換限制於該範圍內的儲存格。當處理 大型 Excel 檔案,且僅有部分資料需要輸出為 PDF 時,這特別有用。

如何將試算表轉換為每張工作表一頁的 PDF?

setOnePagePerSheet 會強制每個工作表在單一 PDF 頁面上呈現。於轉換設定物件上設定 setOnePagePerSheet(true) 選項。此旗標會使轉換器無論原始列印版面如何,都將每個工作表渲染為單一 PDF 頁面。執行轉換時,引擎會遍歷活頁簿中的每張工作表,套用範圍過濾(若有),並將每張工作表寫入最終 PDF 文件的獨立頁面。

實務應用

情境功能如何協助
Financial reporting僅載入包含季報數字的列,為每個部門產生整潔的每張工作表一頁 PDF。
Academic publishing轉換研究資料工作表,聚焦於相關範圍,確保每張工作表各自列印於單獨頁面,便於引用。
Business presentations製作可直接用於簡報的 PDF,藉由每張工作表一頁設定,使每張投影片對應一個工作表。

效能考量

  • 縮小轉換範圍 – 使用 setConvertRange 限制列/欄。
  • 及時釋放資源 – 關閉串流,並在轉換完成後讓 Converter 超出作用域。
  • 平行處理 – 對於批次作業,可在獨立執行緒上執行轉換,以保持 UI 響應。

常見問答

Q: 使用 GroupDocs.Conversion 需要的最低 Java 版本是什麼?
A: 建議使用 JDK 8 或更高版本,以確保與函式庫的完整相容性。

Q: 我可以一次轉換多種試算表格式嗎?
A: 可以,GroupDocs.Conversion 支援在一次轉換呼叫中處理 Excel、CSV、ODS 等多種格式。

Q: 如何取得臨時授權以獲得完整功能?
A: 可透過 GroupDocs 官方網站 申請。

Q: 如果我的試算表太大,無法一次載入記憶體該怎麼辦?
A: 使用 setConvertRange 僅載入所需範圍,並考慮在轉換過程中將檔案串流至磁碟。

Q: 我能將 GroupDocs.Conversion 與雲端儲存服務整合嗎?
A: 可以,您可使用標準的 Java I/O 串流讀寫 AWS S3、Azure Blob Storage、Google Cloud Storage 等服務。

資源


最後更新: 2026-08-14
測試環境: GroupDocs.Conversion 25.2 for Java
作者: GroupDocs

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/conversion/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-conversion</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>
import com.groupdocs.conversion.Converter;
// Basic initialization code here...
import com.groupdocs.conversion.options.load.SpreadsheetLoadOptions;

public class FeatureLoadSpreadsheetWithRange {
    public static void run() {
        // Create load options for specifying a range of cells
        SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
        
        // Specify the cell range (e.g., "10:30" means rows 10 to 30)
        loadOptions.setConvertRange("10:30");
    }
}
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;

public class FeatureConvertToPdfWithOnePagePerSheet {
    public static void run() {
        // Initialize load options with one-page-per-sheet setting
        SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
        loadOptions.setOnePagePerSheet(true);
        
        // Initialize the Converter object with your document path and load options
        Converter converter = new Converter("YOUR_DOCUMENT_DIRECTORY/sample.xlsx", () -> loadOptions);
        
        // Configure PDF conversion to produce one page per sheet
        PdfConvertOptions pdfOptions = new PdfConvertOptions();
        
        // Execute the conversion process
        converter.convert("YOUR_OUTPUT_DIRECTORY/ConvertedSpreadsheet.pdf", pdfOptions);
    }
}

相關教學