C#/VB.NET 將PDF轉為Excel

2022-06-28 15:00:16

PDF檔案可以避免可防⽌他⼈⽆意中觸到鍵盤修改⽂件內容。但是在避免他人⽆意修改的同時也妨礙了正常的修改。如果你想處理或修改PDF檔案中的資料,不妨試試用Excel來實現。Excel擁有強大的資料處理功能,豐富的繪製圖表功能,豐富的自動化功能。本文將分為兩個部分詳細為您介紹如何通過C#/VB.NET程式碼將PDF轉為Excel格式。僅需簡單幾步即可實現此功能,詳情請閱讀以下內容。

將PDF轉為Excel

將多頁 PDF 轉換為一個 Excel 工作表

類庫引入及程式碼思路

方法 1:

 

在程式中引入 Spire.PDF.dll 檔案;將Free Spire.PDF for .NET 下載到本地,解壓,找到 BIN 資料夾下的 Spire.PDF.dll。然後在 Visual Studio 中開啟「解決方案資源管理器」,滑鼠右鍵點選「參照」,「新增參照」,將本地路徑 BIN 資料夾下的 dll 檔案新增參照至程式。

 

方法 2:

 

通過 NuGet 安裝。可通過以下 2 種方法安裝:

 

  1. 可以在 Visual Studio 中開啟「解決方案資源管理器」,滑鼠右鍵點選「參照」,「管理 NuGet 包」,然後搜尋「Free Spire.PDF」,點選「安裝」。等待程式安裝完成。

 

  2. 將以下內容複製到 PM 控制檯安裝。

 

Install-Package FreeSpire.PDF -Version 8.2.0

將PDF轉為Excel

具體步驟:

  • 建立 PdfDocument 類的物件。

  • 呼叫 PdfDocument.LoadFromFile() 方法載入 PDF 檔案。

  • 通過 PdfDocument.SaveToFile() 方法儲存為Excel檔案格式到指定路徑。

完整程式碼:

【C#】

using Spire.Pdf;
using Spire.Pdf.Conversion;

namespace ConvertPdfToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立 PdfDocument 類的物件
            PdfDocument pdf = new PdfDocument();
            //載入PDF檔案
            pdf.LoadFromFile("TableSample2.pdf");

            //儲存PDF為XLSX檔案
            pdf.SaveToFile("PdfToExcel2.xlsx", FileFormat.XLSX);
        }
    }
}

VB.NET

Imports Spire.Pdf
Imports Spire.Pdf.Conversion

Namespace ConvertPdfToExcel
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            '建立 PdfDocument 類的物件
            Dim pdf As PdfDocument = New PdfDocument
            '載入PDF檔案
            pdf.LoadFromFile("TableSample2.pdf ")
            '儲存PDF為XLSX檔案
            pdf.SaveToFile("PdfToExcel2.xlsx", FileFormat.XLSX)
        End Sub
    End Class
End Namespace

檔案效果:

原檔案

輸出檔案

將多頁 PDF 轉換為一個 Excel 工作表

下面是將多頁 PDF 轉換為一個 Excel 工作表的具體步驟:

  • 建立 PdfDocument 類的物件。
  • 呼叫 PdfDocument.LoadFromFile() 方法載入 PDF 檔案。
  • 初始化XlsxLineLayoutOptions 類的一個範例,在類建構函式中,將第一個引數convertToMultipleSheet 設定為 false。
  • 呼叫PdfDocument.ConvertOptions.SetPdfToXlsxOptions()方法設定PDF轉XLSX選項。
  • 用PdfDocument.SaveToFile()方法將PDF儲存為Excel檔案。

完整程式碼:

【C#】

using Spire.Pdf;
using Spire.Pdf.Conversion;

namespace ConvertPdfToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立 PdfDocument 類的物件
            PdfDocument pdf = new PdfDocument();
            //載入PDF檔案
            pdf.LoadFromFile("TableSample.pdf");

            //初始化XlsxLineLayoutOptions 類的一個範例,在類建構函式中,將第一個引數convertToMultipleSheet 設定為 false.
            //四個引數分別代表:convertToMultipleSheet、showRotatedText、splitCell、wrapText
            XlsxLineLayoutOptions options = new XlsxLineLayoutOptions(false, true, true, true);
            //設定PDF轉XLSX選項
            pdf.ConvertOptions.SetPdfToXlsxOptions(options);

            //儲存PDF為Excel檔案
            pdf.SaveToFile("PdfToOneExcelSheet.xlsx", FileFormat.XLSX);
        }
    }
}

【VB.NET】

Imports Spire.Pdf
Imports Spire.Pdf.Conversion

Namespace ConvertPdfToExcel
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            '建立 PdfDocument 類的物件
            Dim pdf As PdfDocument = New PdfDocument

            pdf.LoadFromFile("TableSample.pdf")
            '初始化XlsxLineLayoutOptions 類的一個範例,在類建構函式中,將第一個引數convertToMultipleSheet 設定為 false.
            '四個引數分別代表:convertToMultipleSheet、showRotatedText、splitCell、wrapText            Dim options As XlsxLineLayoutOptions = New XlsxLineLayoutOptions(false, true, true, true)
            '設定PDF轉XLSX選項
            pdf.ConvertOptions.SetPdfToXlsxOptions(options)
            '儲存PDF為Excel檔案
            pdf.SaveToFile("PdfToOneExcelSheet.xlsx", FileFormat.XLSX)
        End Sub
    End Class
End Namespace

檔案效果:

原檔案

輸出檔案

:測試程式碼中的檔案路徑為程式Debug路徑,檔案路徑可自定義為其他路徑。