與其他組件比較

Pandas 讀取 Excel 的替代方案(不使用 Interop)| IronXL for Python

查克尼思·賓
查克尼思·賓
2024年4月3日
分享:

Excel 檔案在資料分析和操作任務中無處不在,提供了一種儲存和組織表格資料的方便方法。 在 Python 中,有多個可用的庫用於讀取 Excel 文件,每個庫都有其各自的功能和特點。 兩個顯著的選擇是 Pandas 和 IronXL,兩者都提供了在 Python 中讀取 Excel 文件的高效方法。

在本文中,我們將比較PandasIronXL在 Python 中讀取 Excel 文件的功能和性能。

Pandas - 開源庫

Pandas 是一個強大的開源資料分析和操作庫,用於 Python。 它介紹了 DataFrame 資料結構,這是一種二維標籤資料結構,其中列可能具有不同類型。Pandas 提供了廣泛的資料處理功能,包括從各種來源讀取和寫入資料,例如 CSV 文件、SQL 資料庫和 Excel 文件。

Pandas 的一些主要功能包括:

數據框架

Pandas 引入了 DataFrame 資料結構,這基本上是一種二維標籤式資料結構,具有可能為不同類型的列。這類似於電子表格或 SQL 表,使得在表格資料上執行過濾、分組和聚合等操作變得容易。

數據操作

Pandas 提供多種資料操作功能,包括合併、重塑、分割、索引和樞紐分析資料。 這些操作允許用戶高效地清理、轉換和準備數據以進行分析或視覺化。

時間序列功能

Pandas 提供強大的工具來處理時間序列數據,包括用於日期/時間索引和重採樣的工具,以及便捷的方法來處理遺失數據和時區轉換。

與庫的整合

Pandas 可以無縫地與多種在數據分析和科學計算中經常使用的 Python 庫合作,包括 NumPy、Matplotlib 和 Scikit-learn。 這種互操作性允許用戶在單一的分析工作流程中利用不同庫的優勢。

總體來說,Pandas 是一個用於在 Python 中進行資料操作和分析的強大工具,並廣泛應用於金融、經濟、生物學和社會科學等各個領域。

IronXL- Python Excel 函式庫

IronXL 是一個專為處理 Excel 文件而設計的 Python 函式庫。 它提供了一個直觀的 API,用於在 Python 中讀取、寫入和處理 Excel 文件。 IronXL旨在簡化Excel文件操作,提供直觀的介面,並消除對外部依賴的需求,如Microsoft Excel或Excel Interop。

IronXL的一些主要功能如下:

直觀的Python 3+ Excel文件API

IronXL 提供一個 Python 3+ 的 Excel 文件 API,直觀且易於使用,使開發者能夠無縫地讀取、編輯和創建 Excel 試算表檔案。

跨平台支援

專為 Python 3+ 設計,並與 Windows、Mac、Linux 和雲端平台相容,IronXL 確保部署環境的靈活性。

不需要 Microsoft Office 或 Excel Interop

開發人員可以在 Python 中使用 Excel 檔案,而無需安裝 Microsoft Office 或處理 Excel Interop,簡化整合過程並減少相依性。

相容性

支持 Python 3.7+ 並可運行於多種作業系統,包括 Microsoft Windows、macOS、Linux、Docker、Azure 和 AWS。 與 JetBrains PyCharm 和其他 Python IDE 等熱門 IDE 相容。

多功能工作簿處理

創建、載入、儲存及匯出試算表至多種格式,包括XLS、XLSX、XSLT、XLSM、CSV、TSV、JSON、HTML、二進制和字節陣列。

強大的工作表編輯

編輯中繼資料,設定權限和密碼,創建和刪除工作表,調整工作表佈局,處理圖片等等。

進階儲存格範圍操作

在儲存格範圍上執行各種操作,例如排序、修剪、清除、複製、查找和替換值、設置超連結、合併和取消合併儲存格。

靈活的單元格樣式

自訂儲存格樣式,包括字體、大小、邊框、對齊和背景圖案,並應用條件格式。

數學函數和數據格式

利用數學函數例如平均值、總和、最小值和最大值,並設置儲存格資料格式,包括文字、數字、公式、日期、貨幣、科學、時間、布林值和自定義格式。

使用 PyCharm 創建 Python 專案

首先,需要在您的機器上安裝 Python。從官方的Python 網站安裝最新版的 Python 3.x。 安裝 Python 時,請確保選擇將 Python 添加到系統 PATH 的選項,這樣可以從命令行訪問。

為了展示 Pandas 和 IronXL 在讀取 Excel 文件方面的功能,讓我們使用 PyCharm—a 這個受歡迎的 Python 統合開發環境 (IDE),來創建一個 Python 專案。

  1. 打開 PyCharm 並創建一個新的 Python 專案。

    Pandas 讀取 Excel 的替代方案(不使用 Interop) IronXL for Python:圖 1 - 建立一個新的 PyCharm 專案

  2. 將專案配置如下:

    • 為專案命名。 在這種情況下「pythonReadExcel

    • 選擇專案的預期位置

    • 選擇解析器類型:專案 venv

    • 選擇 Python 版本

    Pandas 讀取 Excel 的替代方案(不使用 Interop) IronXL for Python:圖 2 - 配置專案名稱、解釋器類型和 Python 版本

  3. 按「建立」以建立專案。

使用 pip 安裝 Pandas 和 IronXL

安裝 Pandas

要在您的專案中安裝 Pandas,您可以遵循以下步驟:

  1. 開啟命令提示字元或終端機:在 PyCharm 中,從檢視->工具視窗->終端機。

    Pandas 讀取 Excel的替代方法(不使用 Interop) IronXL for Python:圖 3 - 開啟終端機

  2. 透過 pip 安裝 Pandas:Pandas 可以使用 pip 套件管理器進行安裝。 在終端中運行以下命令:
    pip install pandas

此指令從 Python 套件索引 (PyPI) 安裝 Pandas 庫及其相依性。

Pandas 讀取 Excel 的替代方案(不使用 Interop) IronXL for Python:圖 4 - 安裝 Pandas 後的控制台輸出

  1. 透過 pip 安裝 OpenPyXL:OpenPyXL 是幫助讀取和寫入 Excel 文件的庫。 這是 Pandas 使用的依賴項之一。 當您安裝 Pandas 時,如果 OpenPyXL 尚未安裝,則會自動安裝。 如果它尚未安裝,您可以在終端中使用以下命令進行安裝:
pip install openpyxl

安裝IronXL

在 Python 專案中安裝 IronXL,請遵循以下步驟:

  1. 確保先決條件:在安裝IronXL之前,請確保您的系統上已安裝必要的先決條件:

    .NET 6.0 SDK:IronXL 依賴於 IronXL .NET 庫,特別是 .NET 6.0,作為其底層技術。 確保您的電腦上已安裝 .NET 6.0 SDK。您可以從官方.NET 網站下載。

  2. 開啟命令提示字元或終端機:與之前相同。

  3. 透過 pip 安裝 IronXL:IronXL 可以使用 pip 套件管理器安裝。 運行以下命令:
pip install IronXL

此命令將從 Python 軟體包索引 (PyPI) 收集、下載並安裝 IronXL 庫及其依賴項。

Pandas 讀取 Excel 的替代方法 (不使用 Interop) IronXL for Python:圖 5 - 安裝 IronXL 的控制台輸出

使用 Pandas 和 IronXL 讀取 Excel 文件

既然我們已經完成了所有設定,接下來我們將使用這兩個庫來讀取 Excel 文件。 我們將要讀取的示範 Excel 文件具有以下值,標題行為 Name、Marks 和 Res:

Pandas 讀取 Excel 的替代方法 (不使用 Interop) IronXL for Python:圖 6 - 範例 Excel 表格

使用 Pandas

第一步

導入 Pandas 庫並使用 read_excel() 函數從 Excel 文件中讀取欄位數據。

import pandas as pd
# Read the Excel file
df = pd.read_excel("file.xlsx")
PYTHON

使用 Pandas 的 read_excel() 函數時,您可以根據需要指定多個顯示選項:

header: 指定 Excel 文件中用作欄名的列。 您可以將其設置為None以表示沒有標題列,或者您可以提供一個整數來指示行號。 如果跳過,標題將設置為布爾預設值 true,第一行位置會顯示為標題行標籤。

index_col:指定使用哪一列或多列作為 DataFrame 的索引。 您可以傳遞單個欄位名稱或欄位索引。 或者您可以傳遞一個包含列名或列索引的列表來創建一個多重索引。

sheet_name:指定要從 Excel 檔案中讀取的工作表。您可以提供工作表名稱作為字串,或者提供指示零索引工作表位置的整數。

usecols:指定從 Excel 文件中讀取哪些列。您可以傳入單個列名或列索引。 或者您可以傳入一個列名或列索引的列表來讀取特定的列。

dtype:指定欄位的資料類型。 您可以傳遞一個字典,其中鍵是列名或列索引,值是所需的數據類型。

轉換器:指定應用於欄位自定義解析的函數。 您可以傳遞一個字典,其中鍵是列名或列索引,值是函數。

na_values:指定要識別為 NaN(非數字)值的其他字符串。 您可以傳遞一個字符串列表以視為NaN。

parse_dates:指定要解析為日期的列。 您可以傳入單個欄位名稱或欄位索引。 或者您可以傳遞一個列表,其中包含要解析為日期的列名或索引。

date_parser:指定用於解析日期的函數。 您可以傳遞一個接受字串並返回 datetime 物件的函數。

skiprows:指定在 Excel 文件开头跳过的行数。

這些選項在使用 Pandas 讀取 Excel 文件時提供了靈活性,使您可以根據具體需求自訂讀取過程。

第2步

顯示 DataFrame 的內容。

print(df)
PYTHON

以下是上述程式碼的輸出:

Pandas 讀取 Excel 的替代方法 (不使用 Interop) IronXL for Python: 圖 7 - 執行 Pandas 代碼的輸出

使用IronXL

步驟 1:導入 IronXL 庫,並使用 WorkBook.Load() 方法加載 Excel 文件。在 Load 方法參數中,您可以傳入有效的文件 URL、本地文件路徑對象,或文件名(如果它與腳本位於同一目錄中)。

from ironxl import WorkBook
# Load the Excel file like object
workbook = WorkBook.Load("file.xlsx")
PYTHON

步驟 2:使用 IronXL,您可以請求多個工作表,並列印欄位標籤。 存取工作表和儲存格,以讀取儲存的列數據。 儲存格可以是任何資料類型,例如數值欄或字串欄。 可以使用 IntValue 屬性將字串列轉換為數值,從而將單元格值轉換為 int,反之亦然。

# Access the first worksheet
# Loads the first sheet from list of int default worksheets
worksheet = workbook.DefaultWorkSheet
# Select a cell and return the converted value
cell_value = worksheet ["A2"].IntValue
print(cell_value)
# Read from the entire worksheet elegantly.
for cell in worksheet:
    print("Cell {} has value '{}'".format(cell.AddressString, cell.Text))
PYTHON

以下是上述代碼的輸出,展示了 IronXL 的多功能性,並以適當的顯示格式顯示:

Pandas 讀取 Excel 的替代方法 (不使用 Interop) IronXL for Python:圖 8 - IronXL 代碼的控制台輸出

如需有關使用 Excel 文件的更多資訊,請造訪此程式碼範例頁面。

結論

總結來說,Pandas 和 IronXL 都提供了在 Python 中讀取 Excel 文件的高效方法。 然而,IronXL 提供了多項優勢,特別是在易用性、性能和專業化的 Excel 處理能力方面,相較於 Pandas。 IronXL 直觀的 API 和全面的功能,使其成為需要進行大規模 Excel 操作任務的專案的最佳選擇。

此外,IronXL 消除了對像 Microsoft Excel 或 Excel Interop 等外部依賴的需求,簡化了開發過程,並增強了跨不同平台的可移植性。 因此,對於尋求穩健且高效 Excel 文件操作解決方案的 Python 開發人員來說,IronXL 成為首選,提供比 Pandas 更好的設施和增強的功能。 有關 IronXL 的更詳細資訊,請造訪此文件頁面。

IronXL 提供免費試用,以測試其功能及在您的 Python 專案中的可行性。 這項試用允許開發人員在不需要任何前期財務承諾的情況下探索IronXL提供的全方位功能和能力。 無論您在考慮使用 IronXL 進行數據匯入/匯出任務、報告生成,還是數據分析,免費試用均提供了一個評估其性能及其是否符合您具體需求的機會。

如需有關授權選項的更多信息並下載免費試用版,請訪問 IronXL 網站的授權頁面。 在這裡,您將找到有關許可條款的詳細信息,包括商業使用和支援的選項。 要開始使用IronXL並親身體驗其優勢,請從此處下載庫。

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
OpenpyXL Python 與 IronXL Python 的比較

準備開始了嗎? 版本: 2025.4 剛剛發布

查看許可證 >