如何使用 Python 將 CSV 檔案轉換為 PDF 檔案?


在當今世界,資料以空前速度生成,能夠有效地管理和呈現資料至關重要。CSV 檔案通常用於在系統之間儲存和傳輸資料,但有時需要將這些資料轉換為更易讀的格式,例如 PDF。

Python 憑藉其豐富的庫,提供了一種簡單高效的方法來將 CSV 檔案轉換為 PDF 檔案。

在本文中,我們將探討使用 Python 將 CSV 檔案轉換為 PDF 檔案所涉及的步驟,並提供一個示例程式碼,您可以使用它來入門。無論您是資料分析師、科學家,還是隻是想提高資料展示技能,本指南都將幫助您輕鬆地將 CSV 檔案轉換為 PDF 檔案。

以下是我們將採取的將 Python 中的 CSV 檔案轉換為 PDF 檔案的方法。

  • 使用 Pandas 將 CSV 檔案轉換為 HTML - Pandas 是一個功能強大的 Python 庫,用於資料處理和分析。它提供了一種稱為“read_csv”的方法,允許我們將 CSV 檔案的內容讀取到 Pandas 資料框中。然後,我們可以使用“to_html”方法將此資料框轉換為 HTML 表格。

  • 使用 PDFkit Python API 將 HTML 檔案轉換為 PDF - PDFkit 是 wkhtmltopdf 命令列實用程式的 Python 包裝器。它允許我們透過在 Python 指令碼中呼叫 wkhtmltopdf 實用程式來將 HTML 檔案轉換為 PDF 檔案。

假設我們有一個名為 inputs.csv 的 CSV 檔案,其中包含以下資料。

inputs.csv

Name, Age, Occupation
John, 32, Engineer
Jane, 28, Teacher
Bob, 45, Salesperson

將 CSV 檔案轉換為 HTML

現在讓我們專注於第一步,我們將以上 CSV 檔案作為輸入,然後將其轉換為 HTML 檔案。

示例

請考慮以下所示的程式碼。

main.py

# Import the pandas library
import pandas as pd

# Read the CSV file into a pandas dataframe
df = pd.read_csv('inputs.csv')

# Convert the dataframe to an HTML table
html_table = df.to_html()

# Print the HTML table to the console
print(html_table)

解釋

  • import pandas as pd - 這將匯入 Pandas 庫,併為其賦予別名“pd”,以便在程式碼後面更容易使用。

  • df = pd.read_csv('inputs.csv') - 這將“inputs.csv”檔案的內容讀取到名為“df”的 Pandas 資料框中。假設檔案的內容以逗號分隔,這是“read_csv”方法的預設分隔符。

  • html_table = df.to_html() - 這將 Pandas 資料框“df”轉換為 HTML 表格,並將生成的 HTML 程式碼分配給變數“html_table”。預設情況下,此方法將資料框的索引列作為 HTML 表格的第一列。

  • print(html_table) - 這會將 HTML 表格列印到控制檯。或者,您可以使用“open”函式的“write”方法將 HTML 表格儲存到檔案中。

要執行以上程式碼,我們首先需要在我們的機器上安裝 Pandas 庫,為此我們可以使用以下所示的命令。

輸出

以上命令的輸出如下所示。

<table border="1" class="dataframe">
   <thead>
      <tr style="text-align: right;">
         <th></th>
         <th>Name</th>
         <th>Age</th>
         <th>Occupation</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <th>0</th>
         <td>John</td>
         <td>32</td>
         <td>Engineer</td>
      </tr>
      <tr>
         <th>1</th>
         <td>Jane</td>
         <td>28</td>
         <td>Teacher</td>
      </tr>
      <tr>
         <th>2</th>
         <td>Bob</td>
         <td>45</td>
         <td>Salesperson</td>
      </tr>
   </tbody>
</table>

將 HTML 轉換為 PDF

為了能夠在將 CSV 轉換為 HTML 後從 CSV 建立 PDF,我們首先需要在我們的系統上安裝wkhtmltopdf,為此我們可以訪問以下 URL。

https://wkhtmltopdf.org/downloads.html

從以上 URL,我們可以在我們的系統上下載特定版本的 wkhtmltopdf 可執行檔案。

安裝完成後,我們可以執行以下所示的程式碼。

main.py

import pdfkit
import pandas as pd

df = pd.read_csv('inputs.csv')
html_table = df.to_html()

options = {    'page-size': 'Letter',
   'margin-top': '0mm',
   'margin-right': '0mm',
   'margin-bottom': '0mm',
   'margin-left': '0mm'
}

pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_string(html_table, 'outputs.pdf', options=options)

注意 - 請注意,在我的機器上,wkhtmltopdf 安裝在路徑:/usr/local/bin/wkhtmltopdf 上,因此我傳遞了該路徑,您的路徑可能有所不同。

要執行以上程式碼,我們首先需要在我們的機器上安裝pdfkit 庫,為此我們可以使用以下所示的命令。

pip3 install pdfkit

pdfkit 安裝成功後,我們可以執行以下所示的命令

python3 main.py

在終端中執行以上命令後,將在同一資料夾中建立一個名為 outputs.pdf 的新檔案。

以下是“outputs.pdf”檔案的螢幕截圖。

結論

總之,可以使用 Pandas 和 pdfkit 庫將 CSV 檔案轉換為 PDF。

首先,使用 Pandas 將 CSV 檔案轉換為 HTML 表格,然後使用 pdfkit 庫將 HTML 轉換為 PDF。透過這種方法,可以輕鬆地從 CSV 資料生成格式良好且可列印的 PDF 文件。

更新於:2023 年 4 月 18 日

4K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告