在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
本文中,我們將討論兩個廣泛使用於管理 Excel 試算表文件的 Python 庫:IronXL 和 OpenPyXL。這些庫對於需要操作、分析或創建 Excel 文件的 Python 開發者而言非常重要。每個庫都提供了獨特的功能,以更有效和高效地處理 Excel 文件。
IronXL 和 OpenPyXL 提供開發人員自動化處理試算表操作的功能,編輯 Excel 表格的儲存格,以及提取示例數據。他們還支持創建公式、設置儲存格樣式以及無縫處理大型數據集等高級功能。這確保應用程序能夠在不影響性能或兼容性的情況下,在各種環境中高效管理 Excel 文件。
在這次比較中,我們將探索每個庫的獨特功能及其工作方式。我們還將介紹它們的許可細節。讓我們來看看 IronXL 和 OpenPyXL 的差異和能力,重點是為開發人員提供清晰實用的信息。
OpenPyXL 是一個專門用於處理 XLSX 格式的 Excel 文件的 Python 庫。該庫允許開發人員讀取、寫入和修改 Excel 文件。OpenPyXL 模塊支持多種 Excel 功能,包括數據操作、格式設置以及圖表和樞紐分析表等高級功能。
OpenPyXL 擅長創建和編輯工作簿。它允許您從空白工作簿開始或修改現有的工作簿,添加或刪除工作表,並輕鬆瀏覽工作表。這使得它非常適合從生成報告到自動化數據輸入的各項任務。
這個函式庫支援進階的資料處理功能,例如添加行、插入公式以及應用樣式到活動工作表。您可以透過程式設置儲存格的值來操作大型資料集,這樣可以簡化資料分析和報告生成的任務。
使用 OpenPyXL,您可以應用單元格格式化,例如字體、顏色和邊框。它還支持條件格式化以及設置對齊等單元格屬性,這些對於創建專業樣式的 Excel 報告是必不可少的。
OpenPyXL 可以向試算表添加圖形元素。 您可以插入圖表以視覺化數據,甚至添加圖片以增強信息的呈現。 此功能特別適合創建儀表板和複雜的報告。
該庫允許將 Excel 公式整合到單元格中,從而在電子表格中實現自動計算。它還支持創建命名區域,這在組織數據和創建更具可讀性和可維護性的工作表時非常有用。
OpenPyXL 提供資料驗證和排序工具,對於保持資料完整性和有效地組織資訊非常重要。它還提供了篩選資料的功能,使管理 Excel 文件中的大量資料更加簡便。
作為一個開源庫,OpenPyXL 受益於充滿活力的社群持續貢獻,確保其保持相關性並功能豐富。這種社群參與為使用該庫的開發人員提供大量的資源和支持。
IronXL是一個強大的Python庫,旨在操作Excel文件而不需要Microsoft Excel。它因其簡單性和在Python環境中直接處理各種Excel任務的有效性而受到青睞。
IronXL 簡化了 創建、加載和保存Excel格式 如 XLS、XLSX 和 CSV 等格式。它確保與不同 Excel 版本的兼容性,並提供全面的功能以程式化方式管理 Excel 資料。
使用 IronXL,您可以有效地排序數據, 管理列和欄及自定儲存格格式。這包括設置數據類型、公式,甚至在儲存格內實現Excel函數。
IronXL 允許廣泛的 儲存格的樣式選項,包括設定字體、邊框和背景顏色。它支持進階的 Excel 功能,如條件格式設定和設定工作表的列印選項,提升 Excel 報告的可讀性和展示效果。
該庫支援編輯元數據、管理許可權和密碼保護文件,確保敏感數據的安全。
IronXL 旨在支持多個操作系統,包括 Windows、macOS 和 Linux,確保開發人員可以在各種平台上部署他們的應用程式,而不會遇到相容性問題。
IronXL 提供強大的功能來處理表格範圍和個別單元格。您可以輕鬆合併、複製和操作單元格範圍。這種能力簡化了管理複雜數據設置的過程。
IronXL無縫整合資料庫和數據來源。它支持從Excel文件中導入和導出數據。這個功能對於需要動態資料報告和分析的應用程序至關重要。
要開始測試 IronXL 和 OpenPyXL 函式庫,我們需要在 Visual Studio Code 中設定一個專門為 Python 開發所設計的專案。
在我們開始之前,確保你的電腦上已經安裝了 Visual Studio Code。還需要安裝 Python 以及 Visual Studio Code 的 Python 擴展。這個擴展可以直接從 Visual Studio Code 的擴展視圖中添加。
首先,請在您的系統上建立一個新資料夾,這將作為您的專案工作區。您可以輕鬆透過 VS Code 的檔案菜單中的打開資料夾選項來完成這一步。
在 Visual Studio Code 中,建議設置一個虛擬環境來乾淨地管理依賴項。您可以通過 Visual Studio Code 中的集成終端來完成這一操作。Visual Studio Code 還在 Python 擴展中提供了一個介面來簡化這一過程。通過 Python 擴展的命令面板,您可以創建和啟動虛擬環境,而無需手動輸入命令。
在 VS Code 中按下 Ctrl+Shft+P ,搜索「Python: Create Environment」並點擊它。
從下拉列表中選擇環境類型。 在我們的情況下,將是 ".venv":
之後,選擇 Python 解釋器的路徑:
它會在資料夾內建立虛擬 Python 環境。
在 Visual Studio Code 中安裝 IronXL 庫是一個簡單的過程。IronXL 特別實用,因為它不需要安裝 Microsoft Office,而是運行在 .NET 框架上。
在開始前 安裝 IronXL, 確保您的環境已配置 Python 和 Visual Studio Code。在您的機器上安裝 .NET 6.0 運行時非常重要,因為 IronXL 需要依賴 .NET 技術運行。對於尚未配備 .NET 的系統,如 Linux 或 macOS,您可能需要從 .NET 官方網站下載它。
要安裝 IronXL,請使用 pip 套件管理器,這將簡化 Python 庫的安裝。在 Visual Studio Code 的終端中按照以下步驟進行:
打開終端:通過使用快捷鍵 Ctrl+ 或從頂部菜單導航到 終端 > 新終端 來訪問 Visual Studio Code 的終端。
pip install IronXL
上述代碼指令將會下載並安裝IronXL庫及其操作所需的任何依賴項。
from ironxl import *
如果沒有出現錯誤,則表示庫已成功安裝並準備就緒。
在安裝 IronXL 時,如果遇到任何與依賴性或與 .NET 相容性相關的問題,請確保所有系統需求皆符合 IronXL 文件中的規定。根據您的操作系統,可能需要調整系統路徑或安裝額外的支援庫。
通過遵循這些指示,IronXL 將安裝在您 Visual Studio Code 中的 Python 環境,為您的 Python 專案提供增強的 Excel 文件操作和數據處理功能。
OpenPyXL 的安裝可以使用 pip(Python 的套件管理器)來完成。建議在虛擬環境中安裝這個庫,以避免與其他 Python 項目或系統包發生衝突。
pip install openpyxl
此命令下載並安裝 OpenPyXL 庫以及所需的任何依賴項。
pip install lxml pillow
安裝完成後,您可以嘗試在您的 Python 腳本中導入 OpenPyXL 模組,以驗證 OpenPyXL 是否已正確安裝:
from openpyxl import Workbook // openpyxl import workbook
wb = Workbook()
如果上述代碼執行沒有錯誤,OpenpyXL 已準備好在您的專案中使用。通過按照這些步驟,您可以輕鬆設置 OpenPyXL,並開始在您的 Python 應用程序中自動化 Excel 文件操作。
IronXL 是一個全面的 Python 庫,旨在加強 Excel 文件操作。此工具簡化了在 Python 應用程式中創建、編輯和管理 Excel 文件的過程,提供了一系列滿足各種需求的功能,從基本的試算表操作到高級數據處理。
IronXL 擅長處理不同的 Excel 格式,包括 XLS、XLSX 和 CSV。用戶可以輕鬆地從這些格式中匯入範例資料,或將工作表匯出至這些格式,從而實現多樣化的資料交換和報告解決方案。您還可以選擇當前的工作表以便在特定的工作表上工作。
from ironxl import * workbook = WorkBook.Load("sample.csv")
workbook2 = WorkBook.Load("sample.xlsx")
workbook3 = WorkBook.Load("sample.xls")
該庫支援 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")
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")
為了增強資料完整性,IronXL 包含了資料驗證功能。它還提供了對範圍、欄和列的穩健排序功能,使組織和分析大型資料集變得更加容易。
安全功能 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()
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 *
# 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")
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)
使用 IronXL,用户可以 分組或取消分組行和列. 此功能增強了數據的組織,通過按需折疊和展開分組數據,使複雜數據集的導航和管理變得更容易。
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)
用戶可以使用 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")
IronXL 提供了能够 將圖片添加到工作表中從中提取圖片或移除圖片。這增強了試算表的視覺吸引力,對於包含圖形數據、標誌或說明圖片的報告非常有用。
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')
使用 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')
該程式庫支持創建和自定義各種類型的圖表,如折線圖、柱狀圖、圓餅圖和散點圖。此功能允許在 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")
OpenPyXL 提供合併多個儲存格以創建一個更大儲存格的功能,這通常對於格式化標題或組織數據很有用。它還允許這些儲存格在需要時取消合併或拆分回獨立的儲存格。
您可以讀取和寫入儲存格註解,允許在 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')
文庫提供從工作表中的數據創建樞紐分析表的功能。這個強大的工具有助於全面地總結、分析、探索和展示數據,使您更容易從大數據集中得出結論並做出明智的決策。
文件: IronXL 为 Python 開發者提供了廣泛的文件。它涵蓋了廣泛的主題,包括如何讀取、寫入和編輯 Excel 文檔、管理工作簿、設置單元格樣式以及編程排序數據。這些文檔設計簡便,輔以大量代碼示例,幫助開發者快速將 IronXL 的功能集成到其應用程序中。
支持: IronXL 提供了強大的支持選項。開發者可以通過綜合的常見問答部分、線上詳細文件以及直接的電子郵件協助來獲取支持。對於更複雜的問題或需要即時協助的情況,可以選擇直接聯繫他們的工程團隊。
文件: OpenPyXL 的文件詳盡而有組織,為開發人員提供從入門到進階功能(如圖表、帶錯誤訊息的數據驗證和條件格式)的指南。文件包括詳細的解釋和代碼片段,對於新用戶和有經驗的用戶都非常有幫助。
支援: OpenPyXL 主要通過社區論壇和官方庫上的問題追踪器提供支援。開發人員可以在 GitHub 上發布問題並為函式庫做出貢獻,使其成為一個協作且不斷發展的工具。
IronXL 提供數個 永久授權 為不同項目需求量身定制的選項,確保開發人員能夠在各種環境中使用該庫而不需承擔持續費用。
附加選項包括:
每個許可證還包括30天退款保證,使開發人員能夠無風險地試用IronXL。這些許可條款使IronXL成為適用於各種範圍和規模項目的靈活選擇,提供了在不同專業設置中實施的明確途徑。
OpenPyXL 是在 MIT 許可證下分發的,這是一種寬鬆的自由軟體許可證。這意味著它在開源和專有軟體的使用上提供了相當大的自由。 MIT 許可證允許在專有軟體中重用,前提是所有副本中都包含 MIT 許可證條款和版權聲明的副本。
在我們對 IronXL 和 OpenPyXL 的評價中,我們查看了它們的功能、可用性、支援選項和授權。這兩個庫在管理 Excel 文件方面都很出色,但它們滿足的需求各不相同。
IronXL 因其豐富的功能而脫穎而出,這些功能允許進行複雜的 Excel 操作而無需安裝 Microsoft Office。它提供詳細的文件和強大的技術支援,這使其成為大型項目或企業的可靠選擇。數據科學家使用 IronXL 來進行多項任務,如數據複製、數據挖掘、數據分析等等。IronXL 授權從 $749 開始,但它包括免費試用。此試用版允許開發人員在購買前充分測試 IronXL 的能力,這對任何嚴肅的項目都是一個主要優勢。
OpenPyXL 也很強大,特別是在其諸如折線圖和條件格式等進階 Excel 功能上。它按照 MIT 許可證提供,這為開源和商業用途提供了靈活性。其支援是社群驅動的,這雖然很好,但沒有提供 IronXL 那樣結構化的支援。
如果你的項目需要高級功能以及專業和持續的支援,IronXL 是更好的選擇。它可能在初期有費用,但為複雜或長期項目提供的優勢和安全性使其投資是值得的。
9 個 .NET API 產品 針對您的辦公文件