跳過到頁腳內容
與其他元件比較

OpenpyXL Python 與 IronXL for Python 的比較

在本文中,我們將討論兩個廣泛使用的用於管理 Excel 電子表格檔案的 Python 庫:IronXL 和 OpenPyXL。 對於需要操作、分析或建立 Excel 文件文件的 Python 開發人員來說,這些程式庫非常重要。 每個庫都提供獨特的功能,以更有效、更有效率地處理 Excel 檔案。

IronXLOpenPyXL為開發人員提供了自動化電子表格操作、編輯 Excel 表格儲存格和提取範例資料的功能。 它們還支援創建公式、設定單元格樣式以及無縫處理大型資料集等高級功能。 這樣可以確保應用程式能夠在各種環境下有效地管理 Excel 文件,而不會影響效能或相容性。

在此比較中,我們將探討每個函式庫的獨特功能及其運作原理。 我們也會介紹他們的許可詳情。 讓我們來看看 IronXL 和 OpenPyXL 的差異和功能,重點是為開發者提供清晰有用的信息。

1. OpenPyXL 庫

OpenPyXL 是一個專門用於處理 XLSX 格式 Excel 檔案的 Python 函式庫。 該庫允許開發人員讀取、寫入和修改 Excel 檔案。 OpenPyXL 模組支援各種 Excel 功能,包括資料處理、格式化以及圖表和資料透視表等進階功能。

1.1 OpenPyXL 的主要特性

1.1.1 電子表格管理

OpenPyXL 擅長建立和編輯工作簿。 它允許您從空白工作簿開始,或修改現有工作簿,新增或刪除工作表,並輕鬆地在工作表之間導覽。 這使其非常適合從生成報告到自動資料輸入等各種任務。

1.1.2 數據處理

此程式庫支援進階資料處理功能,例如追加行、插入公式以及將樣式套用至活動工作表。 你可以透過程式設定單元格值來操作大型資料集,從而簡化資料分析和報告生成等任務。

1.1.3 樣式和格式

使用 OpenPyXL,您可以套用儲存格格式設置,例如字體、顏色和邊框。 它還支援條件格式設定和儲存格屬性設定(例如對齊方式),這對於建立專業風格的 Excel 報表至關重要。

1.1.4 圖表和圖像

OpenPyXL 可以為電子表格新增圖形元素。 您可以插入圖表來視覺化數據,甚至可以添加圖像來增強資訊的呈現效果。 此功能對於建立儀表板和複雜報告尤其有用。

1.1.5 公式和函數積分

該庫允許將 Excel 公式整合到單元格中,從而在電子表格中實現自動計算。 它還支援創建命名區域,這對於組織資料和創建更易讀、更易於維護的工作表非常有幫助。

1.1.6 資料驗證和自動化

OpenPyXL 提供資料驗證和排序工具,這對於維護資料完整性和有效組織資訊至關重要。 它還提供資料篩選功能,使管理 Excel 文件中的大量資料變得更加容易。

1.1.7 開源

作為開源程式庫,OpenPyXL 受益於活躍社群的持續貢獻,確保其保持相關性和功能豐富性。 社區的參與為使用該程式庫的開發者提供了大量的資源和支持。

2. IronXL 庫

IronXL 是一個強大的 Python 庫,旨在無需 Microsoft Excel 即可操作 Excel 檔案。 它因其簡單高效,可以直接在 Python 環境中處理各種 Excel 任務而備受青睞。

2.1 IronXL 的主要特點

2.1.1 工作簿管理

IronXL 簡化了Excel 格式(如 XLS、XLSX 和 CSV 等)的建立、載入和儲存。 它確保與不同版本的 Excel 相容,並提供以程式設計方式管理 Excel 資料的全面功能。

2.1.2 數據處理

使用 IronXL,您可以有效地對資料進行排序、管理行和列,以及自訂儲存格格式。 這包括設定資料類型、公式,甚至在儲存格中實作 Excel 函數。

2.1.3 進階格式設定

IronXL為儲存格提供了豐富的樣式選項,包括設定字體、邊框和背景顏色。 它支援 Excel 的高級功能,例如條件格式設定和工作表列印選項設置,從而增強 Excel 報表的可讀性和呈現效果。

2.1.4 安全功能

該庫支援編輯元資料、管理權限和密碼保護文件,確保敏感資料受到保護。

2.1.5 跨平台支持

IronXL 旨在跨多個作業系統運行,包括 Windows、macOS 和 Linux,確保開發人員可以將他們的應用程式部署到各種平台上而不會出現相容性問題。

2.1.6 片材和單元格範圍操作

IronXL 提供強大的功能來處理紙張範圍和單一儲存格。 您可以輕鬆地合併、複製和操作儲存格區域。 此功能簡化了複雜資料設定的管理。

2.1.7 與資料系統的集成

IronXL 可與資料庫和資料來源無縫整合。 它支援與 Excel 文件之間資料的匯入和匯出。 對於需要動態數據報告和分析的應用來說,此功能至關重要。

3. 在 Visual Studio Code 中設定項目

要開始測試 IronXL 和 OpenPyXL 函式庫,我們需要在 Visual Studio Code 中建立一個專門針對 Python 開發的專案。

3.1 先決條件

在開始之前,請確保您的電腦上已安裝 Visual Studio Code。 此外,還需要安裝 Python 以及 Visual Studio Code 的 Python 擴充功能。 可以直接從 Visual Studio Code 的擴充功能視圖中新增此擴充功能。

3.2 項目配置

首先在你的系統上建立一個新資料夾,該資料夾將作為你的專案的工作區。 您可以使用 VS Code 檔案選單中的"開啟資料夾"選項輕鬆完成此操作。

3.3 環境搭建

在 Visual Studio Code 中,建議設定虛擬環境以清楚管理相依性。 您可以使用 Visual Studio Code 中的整合終端機來完成此操作。 Visual Studio Code 在 Python 擴充功能中也提供了一個介面,以簡化此過程。 透過 Python 擴充功能的命令面板,您可以建立和啟動虛擬環境,而無需手動輸入命令。

在 VS Code 中按Ctrl+Shift+P ,搜尋" Python: 建立環境",然後點擊它。

OpenpyXL Python 與 IronXL for Python 的比較:圖 1 - 環境設定

從下拉清單中選擇環境類型。在本例中,它將是".venv":

OpenpyXL Python 與 IronXL for Python 的比較:圖 2 - .venv

之後,選擇Python解釋器路徑:

OpenpyXL Python 與 IronXL for Python 的比較:圖 3 - 解譯器路徑

它會在該資料夾內建立虛擬 Python 環境。

OpenpyXL Python 與 IronXL for Python 的比較:圖 4 - 虛擬環境

4. 安裝 IronXL Python 函式庫

在 Visual Studio Code 中安裝 IronXL 函式庫是一個簡單的過程。 IronXL 特別有用,因為它不需要安裝 Microsoft Office,而是在 .NET 框架之上運行。

4.1 先決條件

安裝 IronXL之前,請確保您的環境已配置 Python 和 Visual Studio Code。 由於 IronXL 依賴 .NET 技術才能運行,因此您的電腦上必須安裝 .NET 6.0 執行環境。 對於尚未安裝 .NET 的系統,例如 Linux 或 macOS,您可能需要從 .NET 官方網站下載它。

4.2 安裝步驟

要安裝 IronXL,請使用 pip 套件管理器,它可以簡化 Python 庫的安裝。 在 Visual Studio Code 的終端機中依照下列步驟操作:

1.開啟終端機:透過 Visual Studio Code 使用快速鍵Ctrl+`或從頂部選單導覽至"終端" > "新終端"來存取終端。 2.執行 pip 安裝指令:在終端機中,輸入以下指令並按 Enter 鍵:

   :ProductInstall
   :ProductInstall
SHELL

上述pip install指令將下載並安裝 IronXL 函式庫及其運作所需的任何相依性。

OpenpyXL Python 與 IronXL for Python 的比較:圖 5 - IronXL

3.確認安裝:安裝過程完成後,您可以嘗試在新的 Python 腳本中匯入 IronXL 來驗證它是否已正確安裝:

   from ironxl import *
   from ironxl import *
PYTHON

如果沒有出現錯誤,則表示庫已成功安裝並可使用。

4.3 其他考慮因素

安裝 IronXL 時,如果遇到與依賴項或與 .NET 的兼容性相關的任何問題,請確保滿足 IronXL 文件中規定的所有系統要求。 根據您的作業系統,可能需要調整系統路徑或安裝額外的支援庫。

依照這些說明,IronXL 將安裝在 Visual Studio Code 的 Python 環境中,為 Python 專案中增強 Excel 檔案操作和資料處理能力奠定基礎。

5. 安裝 OpenPyXL Python 函式庫

5.1 安裝 OpenPyXL

可以使用 Python 的套件安裝程式 pip 來安裝 OpenPyXL。 建議在虛擬環境中安裝此程式庫,以避免與其他 Python 專案或系統套件發生衝突。

1.使用 pip 安裝 OpenPyXL :在 Visual Studio Code 或您首選的、已啟用 Python 環境的環境中開啟命令列介面 (CLI)。輸入以下命令:

   pip install openpyxl
   pip install openpyxl
SHELL

此命令會下載並安裝 OpenPyXL 庫以及任何所需的依賴項。

OpenPyXL Python 與 IronXL for Python 的比較:圖 6 - OpenPyXL

2.可選依賴項:對於進階用法,例如包含映像或處理大型文件,OpenPyXL 建議安裝lxmlPillow等附加庫。 若要安裝這些程序,請使用:

   pip install lxml pillow
   pip install lxml pillow
SHELL

5.2 驗證安裝

安裝完成後,您可以透過嘗試在 Python 腳本中匯入 OpenPyXL 模組來驗證 OpenPyXL 是否已正確安裝:

from openpyxl import Workbook

wb = Workbook()
from openpyxl import Workbook

wb = Workbook()
PYTHON

如果上述程式碼執行無誤,則 OpenpyXL 即可在您的專案中使用。 按照這些步驟,您可以輕鬆設定 OpenPyXL,並開始在 Python 應用程式中自動執行 Excel 檔案操作。

6. IronXL 和 OpenPyXL 進階功能的比較

6.1 IronXL 的進階功能

IronXL 是一個功能全面的 Python 函式庫,旨在增強 Excel 檔案操作功能。 該工具簡化了在 Python 應用程式中建立、編輯和管理 Excel 檔案的過程,提供了一系列功能以滿足各種需求,從基本的電子表格操作到進階資料處理。

6.1.1 資料導入與匯出

IronXL 擅長處理各種 Excel 格式,包括 XLS、XLSX 和 CSV。使用者可以輕鬆地從這些格式匯入範例資料或將工作表匯出為這些格式,從而實現多樣化的資料交換和報表解決方案。 您也可以選擇目前工作表,以便在特定工作表上進行操作。

from ironxl import *     

workbook = WorkBook.Load("sample.csv")
workbook2 = WorkBook.Load("sample.xlsx")
workbook3 = WorkBook.Load("sample.xls")
from ironxl import *     

workbook = WorkBook.Load("sample.csv")
workbook2 = WorkBook.Load("sample.xlsx")
workbook3 = WorkBook.Load("sample.xls")
PYTHON

6.1.2 公式和計算支持

該程式庫支援Excel 公式,允許在 Excel 表格中進行計算。 每次編輯工作表時,公式都會自動重新計算,以確保資料的一致性和準確性。

from ironxl import *     

# Create a new Excel workbook
new_workbook = WorkBook()
# Add a worksheet to the workbook
new_worksheet = new_workbook.CreateWorkSheet("NewSheet")

# Set new formulas with different logic
new_worksheet["A1"].Formula = "Average(D1:D5)"
new_worksheet["D1"] = 10
new_worksheet["D2"] = 20
new_worksheet["D3"] = 30
new_worksheet["D4"] = 40
new_worksheet["D5"] = 50
new_worksheet["B1"].Formula = "=D3*D4"
new_worksheet["C1"].Formula = "Min(D1:D5)"

# Force recalculate all formulas in the workbook
new_workbook.EvaluateAll()

# Get the calculated values for each formula
average_value = new_worksheet["A1"].ToArray()[0].FormattedCellValue
product_value = new_worksheet["B1"].ToArray()[0].FormattedCellValue
min_value = new_worksheet["C1"].ToArray()[0].FormattedCellValue

# Save the new workbook to a file with updated formulas and calculated values
new_workbook.SaveAs("sample.xlsx")
from ironxl import *     

# Create a new Excel workbook
new_workbook = WorkBook()
# Add a worksheet to the workbook
new_worksheet = new_workbook.CreateWorkSheet("NewSheet")

# Set new formulas with different logic
new_worksheet["A1"].Formula = "Average(D1:D5)"
new_worksheet["D1"] = 10
new_worksheet["D2"] = 20
new_worksheet["D3"] = 30
new_worksheet["D4"] = 40
new_worksheet["D5"] = 50
new_worksheet["B1"].Formula = "=D3*D4"
new_worksheet["C1"].Formula = "Min(D1:D5)"

# Force recalculate all formulas in the workbook
new_workbook.EvaluateAll()

# Get the calculated values for each formula
average_value = new_worksheet["A1"].ToArray()[0].FormattedCellValue
product_value = new_worksheet["B1"].ToArray()[0].FormattedCellValue
min_value = new_worksheet["C1"].ToArray()[0].FormattedCellValue

# Save the new workbook to a file with updated formulas and calculated values
new_workbook.SaveAs("sample.xlsx")
PYTHON

OpenpyXL Python 與 IronXL for Python 的比較:圖 7 - 使用公式輸出寫入數據

6.1.3 高階儲存格格式設定

IronXL 提供豐富的細胞格式化選項。 使用者可以透過程式碼直接在 Excel 電子表格中調整字體、大小、背景、邊框和對齊方式。 此功能有助於準備需要特定樣式指南的資料簡報和報告。

from ironxl import *     

License.LicenseKey = "License Code";

workbook = WorkBook()
new_worksheet = workbook.CreateWorkSheet("FinanceData")

selected_range = new_worksheet["B2:B6"]
new_worksheet["B2"].Value = "Revenue"
new_worksheet["B3"].Value = 150000
new_worksheet["B4"].Value = 200000
new_worksheet["B5"].Value = 180000
new_worksheet["B6"].Value = 220000

selected_range.Style.SetBackgroundColor("#4CAF50")
selected_range.Style.Font.Underline = FontUnderlineType.Single
selected_range.Style.Font.Strikeout = False
selected_range.Style.Font.Bold = True
selected_range.Style.Font.Italic = False

selected_range.Style.TopBorder.Type = BorderType.Thin
selected_range.Style.BottomBorder.Type = BorderType.Thin
selected_range.Style.LeftBorder.Type = BorderType.Thin
selected_range.Style.RightBorder.Type = BorderType.Thin

selected_range.Style.TopBorder.SetColor("#000000")
selected_range.Style.BottomBorder.SetColor("#000000")
selected_range.Style.LeftBorder.SetColor("#000000")
selected_range.Style.RightBorder.SetColor("#000000")

selected_range.Style.VerticalAlignment = VerticalAlignment.Center
selected_range.Style.HorizontalAlignment = HorizontalAlignment.Center
selected_range.Style.FillPattern = FillPattern.LessDots
selected_range.Style.Indention = 0
selected_range.Style.WrapText = True

# Save the new workbook to a file with updated formulas and calculated values
workbook.SaveAs("styled.xlsx")
from ironxl import *     

License.LicenseKey = "License Code";

workbook = WorkBook()
new_worksheet = workbook.CreateWorkSheet("FinanceData")

selected_range = new_worksheet["B2:B6"]
new_worksheet["B2"].Value = "Revenue"
new_worksheet["B3"].Value = 150000
new_worksheet["B4"].Value = 200000
new_worksheet["B5"].Value = 180000
new_worksheet["B6"].Value = 220000

selected_range.Style.SetBackgroundColor("#4CAF50")
selected_range.Style.Font.Underline = FontUnderlineType.Single
selected_range.Style.Font.Strikeout = False
selected_range.Style.Font.Bold = True
selected_range.Style.Font.Italic = False

selected_range.Style.TopBorder.Type = BorderType.Thin
selected_range.Style.BottomBorder.Type = BorderType.Thin
selected_range.Style.LeftBorder.Type = BorderType.Thin
selected_range.Style.RightBorder.Type = BorderType.Thin

selected_range.Style.TopBorder.SetColor("#000000")
selected_range.Style.BottomBorder.SetColor("#000000")
selected_range.Style.LeftBorder.SetColor("#000000")
selected_range.Style.RightBorder.SetColor("#000000")

selected_range.Style.VerticalAlignment = VerticalAlignment.Center
selected_range.Style.HorizontalAlignment = HorizontalAlignment.Center
selected_range.Style.FillPattern = FillPattern.LessDots
selected_range.Style.Indention = 0
selected_range.Style.WrapText = True

# Save the new workbook to a file with updated formulas and calculated values
workbook.SaveAs("styled.xlsx")
PYTHON

OpenpyXL Python 與 IronXL for Python 的比較:圖 8 - 單元格格式化輸出

6.1.4 資料驗證與排序

為了增強資料完整性,IronXL 包含資料驗證功能。 它還提供了強大的範圍、列和行排序功能,使組織和分析大型資料集變得更加容易。

6.1.5 文件安全

IronXL 的安全功能包括加密和解密 Excel 檔案的功能。 這樣可以確保敏感資訊受到保護,並且只有授權使用者才能存取。

from ironxl import *     

# Load a different Excel workbook
workbook = WorkBook.Load("data_file.xlsx")
worksheet = workbook.DefaultWorkSheet

# Open a different protected spreadsheet file
protected_workbook = WorkBook.Load("protected_data.xlsx", "ExcelSecure")

# Apply encryption to the spreadsheet file
workbook.Encrypt("ExcelSecure")

# Clear any existing password protection
workbook.Password = None

# Save changes to the workbook
workbook.Save()

worksheet.ProtectSheet("SheetSecure")
worksheet.UnprotectSheet()
workbook.Save()
from ironxl import *     

# Load a different Excel workbook
workbook = WorkBook.Load("data_file.xlsx")
worksheet = workbook.DefaultWorkSheet

# Open a different protected spreadsheet file
protected_workbook = WorkBook.Load("protected_data.xlsx", "ExcelSecure")

# Apply encryption to the spreadsheet file
workbook.Encrypt("ExcelSecure")

# Clear any existing password protection
workbook.Password = None

# Save changes to the workbook
workbook.Save()

worksheet.ProtectSheet("SheetSecure")
worksheet.UnprotectSheet()
workbook.Save()
PYTHON

OpenpyXL Python 與 IronXL for Python 的比較:圖 9 - 受密碼保護的工作簿物件輸出

6.1.6 轉換能力

IronXL 不限於處理 Excel 文件,例如 XLSX、XLSM、XLTX、XLTM 文件。 它還可以將 Excel 文件轉換為 JSON、XML、HTML 或二進位格式,從而擴展了在不同平台和程式設計環境中使用資料的可能性。

from ironxl import *     

workbook = WorkBook.Create()
worksheet = workbook.CreateWorkSheet("Sheet1")

worksheet["B1"].Value = "Sample Text"
worksheet["B2"].Style.BottomBorder.SetColor("#0077CC")

workbook.SaveAs("output.xls")
workbook.SaveAs("output.xlsx")
workbook.SaveAs("output.tsv")
workbook.SaveAsCsv("output.csv")
workbook.SaveAsJson("output.json")
workbook.SaveAsXml("output.xml")
workbook.ExportToHtml("output.html")
from ironxl import *     

workbook = WorkBook.Create()
worksheet = workbook.CreateWorkSheet("Sheet1")

worksheet["B1"].Value = "Sample Text"
worksheet["B2"].Style.BottomBorder.SetColor("#0077CC")

workbook.SaveAs("output.xls")
workbook.SaveAs("output.xlsx")
workbook.SaveAs("output.tsv")
workbook.SaveAsCsv("output.csv")
workbook.SaveAsJson("output.json")
workbook.SaveAsXml("output.xml")
workbook.ExportToHtml("output.html")
PYTHON

6.1.7 工作表和工作簿管理

該庫簡化了工作簿管理,允許使用者建立、載入和操作整個工作簿或單一工作表。 這包括新增或刪除工作表,以及設定工作表可見性和列印設定。

from ironxl import *     

# Load the Excel workbook
workbook = WorkBook.Load("sample.xlsx")

# Create a new worksheet
new_worksheet = workbook.CreateWorkSheet("NewSheet")

# Fill data into the new worksheet
for i in range(1, 21):
    new_worksheet[f"A{i}"].Value = f"Data {i}"
    new_worksheet[f"B{i}"].Value = 21 - i
    new_worksheet[f"C{i}"].Value = i % 5
    new_worksheet[f"D{i}"].Value = (i * 3) % 7

# Select a range in the new worksheet
selected_range = new_worksheet["A1:D20"]

# Select column B in the new worksheet
column = new_worksheet.GetColumn(1)

# Sort the range in ascending order based on column A
selected_range.SortAscending()

# Sort the range by column C in ascending order
selected_range.SortByColumn("C", SortOrder.Ascending)

# Sort column B in descending order
column.SortDescending()

# Save the changes
workbook.SaveAs("sortedExcelRange.xlsx")
from ironxl import *     

# Load the Excel workbook
workbook = WorkBook.Load("sample.xlsx")

# Create a new worksheet
new_worksheet = workbook.CreateWorkSheet("NewSheet")

# Fill data into the new worksheet
for i in range(1, 21):
    new_worksheet[f"A{i}"].Value = f"Data {i}"
    new_worksheet[f"B{i}"].Value = 21 - i
    new_worksheet[f"C{i}"].Value = i % 5
    new_worksheet[f"D{i}"].Value = (i * 3) % 7

# Select a range in the new worksheet
selected_range = new_worksheet["A1:D20"]

# Select column B in the new worksheet
column = new_worksheet.GetColumn(1)

# Sort the range in ascending order based on column A
selected_range.SortAscending()

# Sort the range by column C in ascending order
selected_range.SortByColumn("C", SortOrder.Ascending)

# Sort column B in descending order
column.SortDescending()

# Save the changes
workbook.SaveAs("sortedExcelRange.xlsx")
PYTHON

OpenpyXL Python 與 IronXL for Python 的比較:圖 10 - 工作表管理輸出

6.1.8 插入新行和列

IronXL 允許使用者在現有的 Excel 工作表中動態插入新的行和列。 此功能特別適用於根據不斷變化的資料需求修改資料結構,而不會破壞電子表格的整體佈局。

# Add a row before second row
worksheet.InsertRow(1)
# Insert multiple rows before 5th Row
worksheet.InsertRows(4, 4)
# Add a column before column C
worksheet.InsertColumn(2)
# Insert multiple columns before column B
worksheet.InsertColumns(1, 3)
# Add a row before second row
worksheet.InsertRow(1)
# Insert multiple rows before 5th Row
worksheet.InsertRows(4, 4)
# Add a column before column C
worksheet.InsertColumn(2)
# Insert multiple columns before column B
worksheet.InsertColumns(1, 3)
PYTHON

6.1.9 行和列的分組與取消分組

使用 IronXL,使用者可以對行和列進行分組或取消分組。 此功能增強了數據組織性,可根據需要折疊和展開分組數據,從而更輕鬆地瀏覽和管理複雜的數據集。

6.1.10 重複 Excel 行和列

IronXL 支援在工作簿的多個頁面上重複行和列。 這對於建立需要在 Excel 文件的每個列印頁面上顯示的頁首或頁尾非常有用,可以確保一致的呈現方式和可讀性。

# Configure rows 2 to 5 to repeat at the top of each printed page
worksheet.SetRepeatingRows(1, 4)
# Configure columns D to F to repeat on the left side of each printed page
worksheet.SetRepeatingColumns(3, 5)
# Insert a page break after column J so that columns A-J appear on the first printed page
worksheet.SetColumnBreak(9)
# Configure rows 2 to 5 to repeat at the top of each printed page
worksheet.SetRepeatingRows(1, 4)
# Configure columns D to F to repeat on the left side of each printed page
worksheet.SetRepeatingColumns(3, 5)
# Insert a page break after column J so that columns A-J appear on the first printed page
worksheet.SetColumnBreak(9)
PYTHON

6.1.11 複製 Excel 工作表

使用者可以使用 IronXL 在同一工作簿中複製現有工作表。 當建立多個格式相同的表格或備份重要資料時,此功能可以節省時間。 它對資料複製非常有幫助。

# Duplicate the worksheet to the same workbook
worksheet.CopySheet("Copied Sheet")
# Duplicate the worksheet to another workbook with the specified name
worksheet.CopyTo(second_book, "Copied Sheet")
# Duplicate the worksheet to the same workbook
worksheet.CopySheet("Copied Sheet")
# Duplicate the worksheet to another workbook with the specified name
worksheet.CopyTo(second_book, "Copied Sheet")
PYTHON

6.1.12 新增、擷取和刪除工作表影像

IronXL 提供了在工作表中新增影像、從工作表中擷取影像或刪除影像的功能。 這增強了電子表格的視覺吸引力,對於包含圖形資料、徽標或說明圖像的報告非常有用。

6.2 OpenPyXL 的高階特性

6.2.1 條件格式

OpenPyXL 允許條件格式設置,讓您可以根據儲存格中包含的資料變更儲存格的樣式。 這包括根據數值設定顏色,或根據特定條件應用不同的字體和樣式,從而增強資料的視覺呈現效果。

from openpyxl import Workbook
from openpyxl.formatting.rule import ColorScaleRule

wb = Workbook()
ws = wb.active

color_scale = ColorScaleRule(start_type='num', start_value=10, start_color='FF0000',
                             end_type='num', end_value=20, end_color='00FF00')
ws.conditional_formatting.add('A1:A10', color_scale)

wb.save('conditional_formatting.xlsx')
from openpyxl import Workbook
from openpyxl.formatting.rule import ColorScaleRule

wb = Workbook()
ws = wb.active

color_scale = ColorScaleRule(start_type='num', start_value=10, start_color='FF0000',
                             end_type='num', end_value=20, end_color='00FF00')
ws.conditional_formatting.add('A1:A10', color_scale)

wb.save('conditional_formatting.xlsx')
PYTHON

6.2.2 數據驗證

使用 OpenPyXL,您可以實現資料驗證,以控制輸入到儲存格中的資料類型。 這包括設定下拉清單、將條目限制在一定的日期或數字範圍內,以及為無效輸入產生錯誤訊息,這有助於維護資料完整性。

from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation

wb = Workbook()
ws = wb.active

dv = DataValidation(type="list", formula1='"Item1,Item2,Item3"', allow_blank=True)
ws.add_data_validation(dv)
dv.add('A1')
ws['A1'] = 'Item1'

wb.save('data_validation.xlsx')
from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation

wb = Workbook()
ws = wb.active

dv = DataValidation(type="list", formula1='"Item1,Item2,Item3"', allow_blank=True)
ws.add_data_validation(dv)
dv.add('A1')
ws['A1'] = 'Item1'

wb.save('data_validation.xlsx')
PYTHON

OpenpyXL Python 與 IronXL for Python 的比較:圖 11 - 資料驗證輸出

6.2.3 圖表

此庫支援建立和自訂各種圖表類型,例如折線圖、長條圖、圓餅圖和散點圖。 此功能可直接在 Excel 表格中視覺化數據,有助於更好地進行數據分析和報告。 我們標記圖表繪製行,並選擇要在圖表中顯示的參考值。

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active

for i in range(10):
    ws.append([i])

values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "E5")

wb.save("chart.xlsx")
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active

for i in range(10):
    ws.append([i])

values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "E5")

wb.save("chart.xlsx")
PYTHON

OpenpyXL Python 與 IronXL for Python 的比較:圖 12 - 圖表輸出

6.2.4 合併和取消合併儲存格

OpenPyXL 提供了將多個單元格合併為一個更大的單元格的功能,這對於格式化標題或組織資料通常很有用。 它還允許在需要時將這些細胞解合併或拆分回單一細胞。

6.2.5 閱讀與寫作評論

您可以讀取和寫入儲存格註釋,從而在 Excel 檔案中新增額外的說明或指令。此功能對於協作專案特別有用,因為使用者之間可能需要共用註釋和指南。

from openpyxl import Workbook
from openpyxl.comments import Comment

wb = Workbook()
ws = wb.active

comment = Comment(text="This is a comment", author="Author")
ws['A1'].comment = comment

wb.save('comments.xlsx')
from openpyxl import Workbook
from openpyxl.comments import Comment

wb = Workbook()
ws = wb.active

comment = Comment(text="This is a comment", author="Author")
ws['A1'].comment = comment

wb.save('comments.xlsx')
PYTHON

6.2.6 資料透視表

該庫提供了從工作表中的資料建立資料透視表的功能。 這款強大的工具可以幫助您全面地總結、分析、探索和呈現數據,從而更容易根據大型數據集得出結論並做出明智的決策。

7.文件和支援。

7.1 IronXL for Python 文件和支持

文件: IronXL 為 Python 開發人員提供了豐富的文件。 它涵蓋了廣泛的主題,包括如何讀取、編寫和編輯 Excel 文件、管理工作簿、設定儲存格樣式以及以程式設計方式對資料進行排序。 文件設計簡潔明了,並輔以大量程式碼範例,以幫助開發人員快速將 IronXL 功能整合到他們的應用程式中。

技術支援: IronXL 提供強大的技術支援選項。 開發者可以透過全面的常見問題解答部分、詳細的線上文件和直接的電子郵件協助獲得支援。 對於更複雜的問題或需要立即協助,您可以選擇直接聯絡他們的工程團隊。

7.2 OpenPyXL 文件和支持

文件: OpenPyXL 的文檔詳盡且組織良好,為開發者提供了從入門到高級功能(如圖表、帶有錯誤訊息的資料驗證和條件格式化)的全方位指南。 文件中包含詳細的解釋和程式碼片段,對新手和經驗豐富的使用者都很有幫助。

支援: OpenPyXL 主要透過社群論壇和官方倉庫中的問題追蹤器提供支援。 開發者可以在 GitHub 上發布問題並為庫做出貢獻,使其成為一個協作且不斷發展的工具。

8. 許可證資訊

8.1 IronXL 許可證

IronXL 提供多種永久許可選項,以滿足不同的專案需求,所有這些選項都確保開發人員可以在各種環境中使用該程式庫而無需持續付費。

  • Lite License:價格為$799 ,此選項適合 1 個開發者、1 個地點和 1 個項目。 它包含電子郵件支援。
  • Plus 授權:此選項售價 1,499 美元,可將覆蓋範圍擴大到 3 位開發者、3 個地點和 3 個專案。 它包括電子郵件支援、24/7 全天候聊天支援和電話支援。 -專業版授權:售價 2,999 美元,這是最全面的套餐,支援 10 位開發人員、10 個地點和 10 個專案。 它提供與 Plus 許可證相同的支援選項,以及螢幕共享支持,以便提供深入的幫助。

其他選項包括:

-免版稅再分送保障:在包裝軟體產品、SaaS 和 OEM 應用程式中分發 IronXL 需要此保障。 Lite 授權不包含此功能,必須與 Plus 或 Professional 授權一併購買。 -擴展產品支援和更新:開發者可以選擇持續支援和更新,1 年免費選項或 5 年套餐,價格為 499 美元。這包括安全功能升級和工程團隊的直接支援。

每個許可證還包含 30 天退款保證,讓開發者可以無風險地測試 IronXL。 這些授權條款使 IronXL 成為各種規模和範圍的專案的靈活選擇,為在不同的專業環境中實施提供了清晰的途徑。

8.2 OpenPyXL 許可證

OpenPyXL 採用 MIT 許可證發布,MIT 許可證是一種寬鬆的自由軟體許可證。 這意味著它允許開源軟體和專有軟體在使用上擁有相當大的自由度。 MIT 授權允許在專有軟體中重複使用,前提是所有授權軟體的副本都包含 MIT 授權條款和版權聲明的副本。

9.結論

OpenpyXL Python 與 IronXL for Python 的比較:圖 13 - 許可

在對 IronXL 和 OpenPyXL 的評測中,我們檢視了它們的功能、易用性、支援選項和許可。 這兩個庫都非常適合管理 Excel 文件,但它們滿足的需求不同。

IronXL 的優點在於其強大的功能,無需 Microsoft Office 即可進行複雜的 Excel 操作。它提供詳盡的文件和強大的技術支持,使其成為大型專案或企業的可靠選擇。 資料科學家使用 IronXL 來實現多種目的,例如資料複製、資料探勘、資料分析以及許多其他任務。 IronXL 授權起價為$799 ,但包含免費試用。 此次試用讓開發者在購買前能夠充分測試 IronXL 的各項功能,這對任何嚴肅的專案來說都是一個巨大的優勢。

OpenPyXL 也非常強大,尤其是其進階 Excel 功能,例如折線圖和條件格式設定等圖表。 它採用 MIT 許可證,為開源和商業用途提供了靈活性。 它的支援是由社區驅動的,這很好,但它沒有 IronXL 提供的結構化支援。

如果您的專案需要高級功能以及專業的持續支持,IronXL 是更佳選擇。雖然初期投入可能較高,但考慮到它帶來的許多優勢和安全性,這項投資絕對物有所值,尤其適用於複雜或長期專案。

請注意OpenPyXL 是其各自所有者的註冊商標。 本網站與 OpenPyXL 無任何關聯,也未獲得其認可或贊助。 所有產品名稱、標誌和品牌均為其各自擁有者的財產。 比較資料僅供參考,並反映撰寫時的公開資訊。

常見問題解答

IronXL 和 OpenPyXL 的主要功能是什麼?

IronXL 和 OpenPyXL 都是設計用來管理 Excel 試算表檔案,讓開發人員可以執行讀取、寫入和修改 Excel 文件等工作。它們支援進階功能,例如公式建立、單元格樣式設定,以及處理大量資料集。

如何在沒有 Microsoft Excel 的情況下操作 Excel 檔案?

IronXL 可讓您在不需要安裝 Microsoft Excel 的情況下操作 Excel 檔案。它在 .NET Framework 上獨立運作,提供跨多平台的強大 Excel 檔案操作功能。

使用 IronXL.Excel 處理 Excel 檔案有哪些好處?

IronXL 提供的優點包括跨平台支援、進階單元格格式化、資料驗證、文件安全性,以及轉換為 JSON、XML 和 HTML 等各種格式的功能。它適用於需要全面功能和專業支援的複雜專案。

OpenPyXL 可以支援圖表與透視表的建立嗎?

是的,OpenPyXL 支援建立各種圖表類型和資料透視表,方便直接在 Excel 表單中進行資料可視化和全面的資料分析。

使用 IronXL 是否需要商業授權?

是的,IronXL.Excel 提供具有各種支援選項(包括試用期)的商業授權,可為 Excel 檔案處理提供強大的技術支援和全面的功能。

OpenPyXL 如何處理 Excel 公式整合?

OpenPyXL 可以管理和評估 Excel 表單中的公式,允許進行複雜的資料操作,並在檔案處理過程中維持資料的完整性。

OpenPyXL 使用者有哪些支援選項?

OpenPyXL 透過論壇和 GitHub 依賴社群驅動的支援,提供協同排除故障的方法,而 IronXL 則透過電子郵件、聊天和電話提供直接的支援。

IronXL 支援哪些 Excel 格式?

IronXL.Excel 支援多種 Excel 檔案格式,讓開發人員可以處理不同類型的 Excel 文件,並允許跨多種資料格式進行廣泛的轉換功能。

IronXL 和 OpenPyXL 在平台相容性方面有何不同?

IronXL 與 Windows、macOS 和 Linux 相容,為不同作業環境的應用程式提供了多樣性。OpenPyXL 主要用於 Python 環境,專注於 XLSX 檔案操作。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。