跳至頁尾內容
EXCEL 工具

如何在 Python 中寫入 Excel 文件

Excel文件在各種行業中對於資料分析、報告和儲存都是必不可少的。 由於Python廣泛的開源模組生態系統,開發人員在程式化生成Excel文件時擁有豐富的選擇。 這些程式庫支持廣泛的使用案例和偏好,提供高級抽象以及對Excel文件的精細控制。

這使開發人員能夠輕鬆自動化與Excel相關的流程,生成動態報告並匯出資料。 我們將探討IronXL作為Python程式庫的有力替代方案,用於在C#中建立Excel文件。

我們將檢視其特性、可用性和性能優勢,同時提供有用的程式碼範例以展示其功能。 此外,還可以使用Python和各種開源程式庫編寫Excel文件。

如何在Python中寫入Excel文件

  1. 匯入所需的程式庫。
  2. 準備您的資料或提供一些資料。
  3. 建立一個稱為工作簿或資料框的物件。
  4. 將您的資料放入物件中。
  5. 使用適當的方法將物件儲存為Excel文件。
  6. 根據需要進行進一步的格式設定或自定義。

Pandas

Pandas以其使用方便和靈活性而聞名,是強大的Python資料操作套裝。 雖然Pandas主要專注於DataFrames,但它也具有Excel文件撰寫功能。

開發人員可以使用to_excel() API輕鬆將DataFrames匯出為Excel格式。 他們甚至可以使用DataFrames匯出到單獨的工作表中。

ExcelWriter物件文件路徑是輸出儲存的位置。 使用Pandas選擇資料格式、索引可見性和工作表名稱,Python表格資料可以輕鬆轉換為Excel文件。

如何在Python中寫入Excel文件:圖1

xlwt

該程式庫允許您將資料和格式資訊寫入過時的.xls格式的Excel文件中。 Xlwt仍然是一個可行的解決方案,適用於需要與早期Excel版本或舊系統相容的情況,即使它不是積極開發的。

開發人員可以使用xlwt的功能將資料寫入單元格、新增工作表和構建工作簿物件。 Xlwt為在Python中建立Excel文件提供了基本功能,雖然與較新的工具相比有所限制。

如何在Python中寫入Excel文件:圖2

Tablib

這個靈活的程式庫可以處理多種格式的表格資料,包括Excel。 Tablib具有將資料匯出為Excel格式的功能,即使其主要集中於資料處理和序列化。

Tablib提供的方法讓開發人員可以輕鬆構建資料集物件,新增資料並匯出至Excel文件。 Tablib的多樣性和易用性使其適合涉及簡單Excel文件建立的Python工作。

如何在Python中寫入Excel文件:圖3

ezodf

使用ezodf程式庫可以處理電子表格和其他開放文件格式 (ODF) 文件。 雖然ezodf不是為Excel文件設計的,但它為Python使用者提供了建立和操作電子表格文件的能力。

開發人員可以使用ezodf的方法新增工作表、程式化地將資料寫入Excel表上的單元格,並生成ODS (開放文件格式電子表格) 文件。 即使它不如流行,當在Python中處理電子表格文件時,ezodf提供了一個建立Excel文件的選擇。

如何在Python中寫入Excel文件:圖4

pyxlsb

一個名為pyxlsb的Python套件用於讀取和寫入Excel二進位工作簿 (.xlsb) 文件。 它提供了新增工作表、將資料寫入二進位Excel格式的單元格以及生成工作簿物件的功能。

雖然.xlsb文件的支援不像.xlsx或.xls那麼廣泛,pyxlsb為Python提供了操作二進位Excel文件的功能,滿足某些需要Excel二進位格式相容的使用案例。

如何在Python中寫入Excel文件:圖5

IronXL

IronXL 是一個功能豐富的 C# 程式庫,用於操作 Excel 文件。 由Iron Software建立的IronXL,提供了用於動態生成、格式設定和填充Excel文件的全面功能。 IronXL 通過其使用者友好的 API 和全面的文件,簡化了 C# 中的 Excel 交互,為開發者提供順暢的 Excel 相關活動體驗。

IronXL 的功能

  • 廣泛支援Excel: IronXL可以開啟和操作各種格式的Excel文件,包括csv、file、xls文件和xlsx文件。 通過IronXL強大的解析功能,開發人員可以有效地從現有的Excel文件中提取資料,無論是舊版還是新版的Excel文件。
  • 高速: IronXL將優化速度放在首位。 使用有效的演算法和記憶體管理技術來提供可靠且快速的Excel互動體驗。 由於IronXL提供優化的處理速度和降低的記憶體負擔,開發人員可以輕鬆處理大型Excel文件。
  • 簡單易用的API: IronXL適合不同經驗水平的開發人員,因為其API直觀且易於使用。 透過提供簡單的方法來讀取Excel文件、存取Excel工作簿和獲取單元格中的資料,IronXL能夠降低C#開發人員的學習曲線並簡化撰寫和閱讀現有文件的過程。
  • 細粒度控制: 與其他高階程式庫不同的是,IronXL為開發人員提供對Excel文件的精細控制,允許他們與Excel試算表進行到達單元格層級的互動。 因為開發人員可以存取特定單元、列和試算表,他們可以精確地提取和更改資料,以滿足他們的需求。
  • 跨平台相容性: IronXL適用於多個操作系統,包括Windows、Linux和macOS,使其適合用於跨平台C#開發。 無論是開發桌面、網路還是行動應用程式,開發人員都可以依靠IronXL在多種環境中提供一致的Excel互動。

如需更多有關 IronXL 文件的資訊,請參閱 這裡

安裝IronXL

使用這些指示和命令行來安裝IronXL。

在Visual Studio中,導航到工具 -> NuGet程式包管理 -> 程式包管理介面。

在程式包管理員的主控台標籤中輸入以下程式碼:

pip install IronXL

該文件在目前的項目上安裝後即可使用。

Writing Excel Data Using IronXL in C

現在讓我們深入了解一個真實的程式碼範例,展示如何使用C#中的IronXL將資料寫入Excel文件。 我們將演示如何開啟一個新的Excel工作簿,填充工作表,然後將資料儲存到文件:

using IronXL; // Include IronXL namespace

class Program
{
    static void Main(string[] args)
    {
        // Create a new WorkBook object in .xlsx format
        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        // Add a new WorkSheet named "Sheet1" to the workbook
        WorkSheet workSheet = workBook.CreateWorkSheet("Sheet1");

        // Define sample data
        string[,] data = {
            { "Name", "Age", "City" },
            { "John ", "25", "New York" },
            { "Smith", "30", "Los Angeles" },
            { "Johnson", "35", "Chicago" }
        };

        // Populate the worksheet with data
        for (int row = 0; row < data.GetLength(0); row++)
        {
            for (int col = 0; col < data.GetLength(1); col++)
            {
                workSheet.SetCellValue(row, col, data[row, col]);
            }
        }

        // Save the workbook to a .xlsx file named "Demo.xlsx"
        workBook.SaveAs("Demo.xlsx");

        // Close the workbook to free resources
        workBook.Close();
    }
}
using IronXL; // Include IronXL namespace

class Program
{
    static void Main(string[] args)
    {
        // Create a new WorkBook object in .xlsx format
        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        // Add a new WorkSheet named "Sheet1" to the workbook
        WorkSheet workSheet = workBook.CreateWorkSheet("Sheet1");

        // Define sample data
        string[,] data = {
            { "Name", "Age", "City" },
            { "John ", "25", "New York" },
            { "Smith", "30", "Los Angeles" },
            { "Johnson", "35", "Chicago" }
        };

        // Populate the worksheet with data
        for (int row = 0; row < data.GetLength(0); row++)
        {
            for (int col = 0; col < data.GetLength(1); col++)
            {
                workSheet.SetCellValue(row, col, data[row, col]);
            }
        }

        // Save the workbook to a .xlsx file named "Demo.xlsx"
        workBook.SaveAs("Demo.xlsx");

        // Close the workbook to free resources
        workBook.Close();
    }
}
Imports IronXL ' Include IronXL namespace

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new WorkBook object in .xlsx format
		Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
		' Add a new WorkSheet named "Sheet1" to the workbook
		Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

		' Define sample data
		Dim data(,) As String = {
			{ "Name", "Age", "City" },
			{ "John ", "25", "New York" },
			{ "Smith", "30", "Los Angeles" },
			{ "Johnson", "35", "Chicago" }
		}

		' Populate the worksheet with data
		For row As Integer = 0 To data.GetLength(0) - 1
			For col As Integer = 0 To data.GetLength(1) - 1
				workSheet.SetCellValue(row, col, data(row, col))
			Next col
		Next row

		' Save the workbook to a .xlsx file named "Demo.xlsx"
		workBook.SaveAs("Demo.xlsx")

		' Close the workbook to free resources
		workBook.Close()
	End Sub
End Class
$vbLabelText   $csharpLabel

在這個程式碼範例中,我們首先使用IronXL的Create()功能建立一個新的WorkBook物件,指定所需的Excel文件型別(在本例中為.xlsx)。 接下來,我們建立一個新的工作表並在二維陣列中定義一些範例資料。

然後,我們通過存取和設置不同單元的值,使用巢狀迴圈將範例資料填入工作表中。

最後,我們使用SaveAs()功能將工作簿儲存到目標文件名稱 "Demo.xlsx" 並關閉工作簿以釋放系統資源。 同樣,我們可以在目標文件中建立多個表。

下面是生成的Excel文件的輸出。要了解更多關於寫入Excel文件的資訊,請參考此處

如何在Python中寫入Excel文件:圖6

結論

Python提供了一系列免費和開源的程式庫來程式化地寫入Excel文件,滿足廣泛的需求和喜好。 無論您是處理表格資料、生成報告,還是將資料匯出到Excel,這些函式庫都可以讓您快速高效地執行Excel寫入任務。

IronXL 是 C# 開發人員的 Microsoft Excel 的強大替代品,提供對 Excel 的全面支持、卓越的速度以及與 .NET Framework的流暢接口。 透過使用者友好的API和對Excel文件的精細控制,IronXL簡化了C#中的Excel撰寫。

這使得開發人員能夠更輕鬆地建立動態報告、匯出資料並自動化與Excel相關的操作。 C#開發人員無論是在建立桌面、網路或行動應用程式中的Excel文件,都可以依靠IronXL來優化與Excel相關的操作,並在其C#應用程式中實現Excel的全部功能。

IronXL推出時提供$999。 使用者還可以選擇支付一年會員費以獲得更新和產品幫助。IronXL提供無限制再分發的保護,需額外收費。 存取此頁面了解更多關於成本的估計。點擊這裡了解更多關於Iron Software的資訊。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話