OpenpyXL Python & IronXL for Python 之間的比較
在本文中,我們將討論兩個廣泛使用的Python程式庫,用於管理Excel電子試算檔案:IronXL和OpenPyXL。 這些程式庫對於需要操作、分析或建立Excel文件文件的Python開發者來說非常重要。 每個程式庫都提供獨特的功能,以更有效率地處理Excel檔案。
IronXL和OpenPyXL為開發者提供自動化電子表格操作、編輯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 簡化了如XLS, XLSX 和 CSV 等Excel格式的建立、載入和儲存。 它確保與不同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: Create Environment",然後點擊它。

從下拉列表中選擇環境型別。在我們的情況中,將是".venv":

接下來,選擇Python解釋器路徑:

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

4. 安裝IronXL for Python程式庫
在Visual Studio Code中安裝IronXL程式庫是一個簡單的過程。 IronXL特別有用,因為它不需要安裝Microsoft Office,而是基於.NET框架運作。
4.1 先決條件
在安裝IronXL之前,確保您的環境已經配置好Python和Visual Studio Code。 在您的機器上安裝.NET 6.0 運行時非常重要,因為IronXL依賴於.NET技術來運行。 對於尚未裝備.NET的系統,如Linux或macOS,您可能需要從.NET的官方網站下載。
4.2 安裝步驟
欲安裝IronXL,使用pip包管理器,其簡化了Python程式庫的安裝。 在Visual Studio Code中的終端中按以下步驟進行:
- 打開終端:通過使用快捷鍵Ctrl+`或從頂部選單中導航至終端 > 新終端來存取終端。
執行Pip安裝命令:在終端中輸入以下命令並按回車鍵:
pip install IronXL
上述
pip install命令將下載並安裝IronXL程式庫及其所需的所有依賴。

確認安裝:安裝過程完成後,您可以通過在新的Python腳本中嘗試導入來驗證IronXL是否正確安裝:
from ironxl import *from ironxl import *PYTHON如果沒有出現錯誤,則表明程式庫已成功安裝並可以使用。
4.3 附加考量
在安裝IronXL的過程中,如果遇到與依賴或.NET的相容性相關的問題,請確保滿足IronXL文件中規定的所有系統要求。 視您的作業系統可能需要調整系統路徑或安裝其他支援程式庫。
藉由遵循這些指引,IronXL將被安裝到您的Python環境中的Visual Studio Code中,為您的Python專案提供增強的Excel檔案操作和資料處理能力。
5. 安裝OpenPyXL Python程式庫
5.1 安裝OpenPyXL
可以使用pip,Python的包管理器來安裝OpenPyXL。 建議在虛擬環境中安裝此程式庫,以避免與其他Python專案或系統包產生衝突。
使用pip安裝OpenPyXL: 使用Visual Studio Code中的命令行接口(CLI)或您首選的Python環境處於活躍狀態的環境中,輸入以下命令:
pip install openpyxlpip install openpyxlSHELL此命令將下載並安裝OpenPyXL程式庫及其需要的所有依賴。

可選依賴: 對於進階使用,如增加影像或處理大型文件,OpenPyXL建議安裝附加程式庫如lxml和Pillow。 欲安裝這些,請使用:
pip install lxml pillowpip install lxml pillowSHELL
5.2 驗證安裝
安裝完成後,您可以通過在Python腳本中嘗試導入OpenPyXL模組來驗證是否正確安裝OpenPyXL:
from openpyxl import Workbook
wb = Workbook()from openpyxl import Workbook
wb = Workbook()如果上述程式碼無錯執行,OpenpyXL即可以在您的專案中使用。 通過這些步驟,您可以輕鬆設置OpenPyXL並開始在Python應用程式中自動化Excel檔案操作。
6. IronXL和OpenPyXL中的高級功能比較
6.1 IronXL的高級功能
IronXL是一個旨在加強Excel檔案操作的綜合Python程式庫。 這個工具簡化了在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")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")
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")
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()
6.1.6 轉換能力
IronXL不限於處理如XLSX, XLSM, XLTX, XLTM檔案等Excel檔案。 它還可以將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")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")
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)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)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")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')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')
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")
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')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 授權: 價格為$999,此選項適合1位開發者、1個地點及1個項目。 它包括電子郵件支援。
- Plus 授權: 此選項價格為$1,499,擴大至3位開發者、3個地點及3個項目之支持。 它包括電子郵件支援、24/7聊天支援及電話支援。
- Professional 授權: 價格為$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授權條款及版權聲明。
9. 結論

在我們對IronXL和OpenPyXL的評論中,我們已經查看了其功能、可用性、支援選項和授權。 兩者在管理Excel文件方面都很出色,但滿足了不同需求。
IronXL因其廣泛功能而突出,允許進行複雜的Excel操作而不需要Microsoft Office。它提供詳盡文件及強大的技術支持,對於較大專案或企業而言是一個可靠的選擇。 資料科學家使用IronXL進行多種功能,如資料拷貝、資料挖掘、資料分析和許多其他任務。 IronXL 授權從 $999 開始,但包含免費試用。 這項試用允許開發者在購買前完全測試IronXL的能力,這對於任何重要專案都是一大優勢。
OpenPyXL也很強大,特別是其進階Excel功能,如圖表型別及條件格式化。 它是在MIT授權下提供,為開源和商業用途提供了靈活性。 它的支援是由社群驅動的,這很好,但其並未提供IronXL那樣的結構化支援。
若您的專案需要高級功能以及專業和持續的支援,那麼IronXL是較佳的選擇。雖然最初可能會有成本,但對於其所提供的益處和安全性來說,投資是值得的,特別是對於複雜或長期專案。
常見問題
IronXL和OpenPyXL的主要功能是什麼?
IronXL和OpenPyXL均旨在管理Excel試算表文件,允許開發者執行讀取、寫入和修改Excel文件的任務。它們支持公式建立、單元格樣式和處理大量資料集等進階功能。
如何在沒有Microsoft Excel的情況下操作Excel文件?
IronXL允許您在不需要安裝Microsoft Excel的情況下操作Excel文件。它獨立運行在.NET框架上,提供強大的Excel文件操作能力,支持多個平台。
使用IronXL來操作Excel文件的好處是什麼?
IronXL提供跨平台支持、進階單元格格式、資料驗證、文件安全性及轉換各種格式(如JSON、XML和HTML)的能力。適合需要全面功能和專業支持的複雜專案。
OpenPyXL能支持圖表和樞紐分析表的建立嗎?
是的,OpenPyXL支持建立各種圖表型別和樞紐分析表,便於直接在Excel工作表中進行資料可視化和全面資料分析。
使用IronXL是否需要商業授權?
是的,IronXL提供商業授權並提供各種支持選項,包括試用期,提供強大的技術支持和全面的Excel文件操作能力。
OpenPyXL如何處理Excel公式整合?
OpenPyXL可以在Excel工作表中管理和評估公式,允許進行複雜的資料運算,並在文件操作過程中保持資料完整性。
OpenPyXL使用者有哪些支持選項?
OpenPyXL依賴於社區驅動的支持,透過論壇和GitHub提供協作的問題解決方式,而IronXL則提供電子郵件、聊天和電話的直接支持。
IronXL支持哪些Excel格式?
IronXL支持多種Excel文件格式,使開發者能夠處理不同型別的Excel文件,並允許在多種資料格式間進行廣泛的轉換。
IronXL和OpenPyXL在平台相容性方面有何不同?
IronXL與Windows、macOS和Linux相容,為不同操作環境中的應用提供多樣性。OpenPyXL主要在Python環境中使用,專注於XLSX文件操作。










