C# 寫入 Excel [不使用 Interop] 程式碼範例教程

This article was translated from English: Does it need improvement?
Translated
View the article in English

伊萊賈·威廉姆斯

請按照以下逐步範例學習如何使用 C# 建立、打開和保存 Excel 文件,並應用基本操作如求和、平均、計算等。IronXL.Excel 是一個獨立的 .NET 軟體庫,用於讀取各種電子表格格式。它不需要 微軟 Excel 無需安裝,也不依賴於Interop。


概述

使用 IronXL 開啟和寫入 Excel 檔案

開啟、寫入、儲存和自訂 Excel 文件,簡單易用 IronXL C# 函式庫。

下載 來自 GitHub 的範例專案 或使用您自己的,並按照教程進行。

  1. 從安裝IronXL Excel庫 NuGet 或 DLL 下載

  2. 使用 WorkBook.Load 方法讀取任何 XLS、XLSX 或 CSV 文件。

  3. 使用直觀語法獲取單元格值: 工作表 ["A11"].DecimalValue

In this tutorial, we will walk you through:

  • Installing IronXL.Excel: how to install IronXL.Excel to an existing project.
  • Basic Operations: basic operation steps with Excel to Create or Open workbook, select sheet, select cell, and save the workbook
  • Advanced Sheet Operations: how to utilize different manipulation capabilities like adding headers or footers, mathematical operations files, and other features.

開啟 Excel 文件:快速代碼

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-1.cs
using IronXL;

WorkBook workBook = WorkBook.Load("test.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
IronXL.Range range = workSheet["A2:A8"];
decimal total = 0;

// iterate over range of cells
foreach (var cell in range)
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.RowIndex, cell.Value);
    if (cell.IsNumeric)
    {
        // Get decimal value to avoid floating numbers precision issue
        total += cell.DecimalValue;
    }
}

// Check formula evaluation
if (workSheet["A11"].DecimalValue == total)
{
    Console.WriteLine("Basic Test Passed");
}
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("test.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private range As IronXL.Range = workSheet("A2:A8")
Private total As Decimal = 0

' iterate over range of cells
For Each cell In range
	Console.WriteLine("Cell {0} has value '{1}'", cell.RowIndex, cell.Value)
	If cell.IsNumeric Then
		' Get decimal value to avoid floating numbers precision issue
		total += cell.DecimalValue
	End If
Next cell

' Check formula evaluation
If workSheet("A11").DecimalValue = total Then
	Console.WriteLine("Basic Test Passed")
End If
VB   C#

將變更寫入並保存至 Excel 文件:快速代碼

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-2.cs
workSheet["B1"].Value = 11.54;

// Save Changes
workBook.SaveAs("test.xlsx");
workSheet("B1").Value = 11.54

' Save Changes
workBook.SaveAs("test.xlsx")
VB   C#

第一步

1. 安裝IronXL C#程式庫免費

C# NuGet 程式庫用于 Excel

安裝與 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 Excel

安裝與 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronXLNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變Excel。

C# NuGet 程式庫用于 Excel nuget.org/packages/IronXL.Excel/
Install-Package IronXL.Excel

請考慮安裝 IronXL DLL 直接下載並手動安裝到您的專案或GAC表單: IronXL.zip

手動安裝到您的項目中

下載DLL

IronXL.Excel 提供了一個靈活且強大的庫,用於在 .NET 中打開、閱讀、編輯和儲存 Excel 檔案。它可以安裝並用於所有 .NET 專案類型,例如 Windows 應用程式、ASP.NET MVC 和 .NET Core 應用程式。

使用 NuGet 將 Excel 庫安裝到您的 Visual Studio 專案中

第一步是安裝 IronXL.Excel。將 IronXL.Excel 庫添加到專案中,我們有兩種方式:NuGet 套件管理員或 NuGet 套件管理員主控台。

使用 NuGet 將 IronXL.Excel 庫添加到專案中,我們可以使用可視化接口:NuGet 套件管理員:

  1. 使用滑鼠 -> 右鍵單擊專案名稱 -> 選擇管理 NuGet 套件

  1. 從「瀏覽」標籤 -> 搜尋 IronXL.Excel -> 安裝

3. 我們完成了

使用 NuGet 套件管理器控制台進行安裝

1. 從工具 -> NuGet 套件管理器 -> 套件管理器控制台

2. 運行命令 -> Install-Package IronXL.Excel -Version 2019.5.2

手動使用DLL安裝

您也可以選擇手動安裝 DLL 到您的項目或全域程序集快取。 ``` PM > Install-Package IronXL.Excel ``` 請提供內容以進行翻譯。

操作教程

## 2. 基本操作:建立、開啟、儲存 ## ### 2.1. 範例專案:HelloWorld 控制台應用程式 ###

創建一個HelloWorld專案

2.1.1. 打開 Visual Studio

2.1.2. 選擇建立新專案

選擇控制台應用程式 (.NET 框架)

將我們的範例命名為“HelloWorld”,然後點擊創建。

2.1.5. 現在我們已經建立了控制台應用程序

2.1.6. 添加 IronXL.Excel => 点击安装

2.1.7. 添加我們的前幾行代碼來讀取 Excel 文件中第一張工作表的第一個單元格,並打印。

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-3.cs ``` ### 2.2. 建立一個新的 Excel 文件 ###

使用 IronXL 創建新的 Excel 文件

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-4.cs ``` ### 2.3. 將 (CSV、XML、JSON 列表) 打開為工作簿 ###

2.3.1. 開啟 CSV 檔案

2.3.2 建立一個新的文字檔案,並在其中添加姓名和年齡列表(見示例),然後將其保存為CSVList.csv

您的代碼片段應該看起來像這樣

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-5.cs ```

2.3.3. 打開 XML 檔案 創建一個包含國家列表的 XML 文件:根元素為“countries”,子元素為“country”,每個國家都有定義國家屬性的屬性,如代碼、大陸等。

```html United Arab EmiratesUnited KingdomUnited StatesUnited States Minor Outlying Islands```

2.3.4. 複製以下程式碼片段以將 XML 作為工作簿打開

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-7.cs ```

2.3.5. 將 JSON 列表作為工作簿打开 建立 JSON 國家列表

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-8.cs ```

2.3.6. 建立一個將映射到 JSON 的國家模型

這是類別代碼片段

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-9.cs ```

2.3.8. 添加Newtonsoft庫以將JSON轉換為國家模型列表

2.3.9 為了將清單轉換為資料集,我們必須為清單創建一個新的擴展。新增名為 “ListConvertExtension” 的擴展類別。

然後添加此代碼片段

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-10.cs ```

最後將此數據集載入為工作簿

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-11.cs ``` ### 2.4. 儲存和匯出 ### 我們可以使用以下指令將 Excel 檔案儲存或匯出為多種檔案格式,如(“.xlsx”,”.csv”,”.html”)。

2.4.1. 保存為 ".xlsx" 要保存為“.xlsx”,使用saveAs函數

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-12.cs ```

2.4.2. 儲存為 csv “.csv” 要保存為“ .csv ”,我們可以使用 SaveAsCsv 並傳遞給它兩個參數:第一個參數是文件名和路徑,第二個參數是分隔符。例如 (“,” 或 “ ” 或 “:”)

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-13.cs ```

2.4.3. 儲存為JSON “.json” 要儲存為 Json “.json”,請按照以下方式使用 SaveAsJson

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-14.cs ```

結果檔案應如下所示

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-15.cs ```

2.4.4. 儲存為 XML “.xml” 要保存為 XML,請按以下方式使用 SaveAsXml

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-16.cs ```

結果應如下所示

```html <_x0031_stworksheet><_x0031_stworksheet>Hello World<_x0031_stworksheet>```
## 3. 高級操作:總和、平均、計數等 ## 讓我們來應用一些常見的 Excel 函數,例如 SUM、AVG、Count,並查看每個程式碼片段。 ### 3.1. 加總範例 ###

讓我們來計算這個列表的總和。我創建了一個 Excel 文件,命名為 “Sum.xlsx”,並手動添加了這個數字列表。

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-18.cs ``` ### 3.2. 平均範例 ###

使用相同的文件,我們可以得到平均值:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-19.cs ``` ### 3.3. 計算範例 ###

使用相同的檔案,我們也可以獲取序列中的元素數量:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-20.cs ``` ### 3.4. 最大示例 ###

使用同一個文件,我們可以得到單元格範圍的最大值:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-21.cs ```

- 我們可以將變換函數應用於最大值函數的結果:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-22.cs ```

此範例在控制台中寫入“false”。

### 3.5. 最小範例 ###

使用相同的檔案,我們可以獲取單元格範圍的最小值:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-23.cs ``` ### 3.6. 訂購單元格範例 ###

使用相同的文件,我們可以按升序或降序排序儲存格:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-24.cs ``` ### 3.7. 如果條件範例 ###

使用同一個檔案,我們可以使用 Formula 屬性來設置或獲取儲存格的公式:

3.7.1. 儲存為 XML “.xml”

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-25.cs ```

7.2. 使用前一個範例生成的檔案,我們可以獲取儲存格的公式:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-26.cs ``` ### 3.8. 範例修剪 ###

要套用修剪功能(消除儲存格中的所有多餘空格),我將此列添加到 sum.xlsx 文件中。

請使用以下代碼

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-27.cs ```

因此,您可以以相同的方式應用公式。


## 4. 使用多工作表活頁簿 ## 我們將介紹如何處理包含多個工作表的活頁簿。 ### 4.1. 從同一個工作簿中的多個工作表讀取數據 ###

我創建了一個包含兩個工作表的 xlsx 文件:“Sheet1”、“Sheet2”

到目前為止,我們一直使用 WorkSheets.First() 處理第一個工作表。在此範例中,我們將指定工作表名稱並進行處理。

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-28.cs ``` ### 4.2. 将新工作表添加到工作簿 ###

我們還可以在工作簿中添加新工作表:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-29.cs ```
## 5. 與 Excel 資料庫整合 ## 讓我們看看如何將資料導出到資料庫或從資料庫導入資料。 我創建了一個包含兩列:Id 的 "TestDb" 資料庫,其中有一個 Country 表。 (`int`, `identity`),國家名稱(字串) ### 5.1. 使用來自資料庫的數據填寫 Excel 表格 ###

在這裡我們將創建一個新工作表,並用國家表中的數據填充它。

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-30.cs ``` ### 5.2. 從 Excel 表格中填充數據庫 ###

將數據插入到 TestDb 資料庫的 Country 表格中

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-31.cs ```
### 進一步閱讀 若要瞭解更多有關使用 IronXL 的信息,您可能會希望查看本節中的其他教學和我們首頁上的示例,大多數開發人員發現這些內容足以幫助他們入門。 [API 參考文獻](/csharp/excel/object-reference/) 包含對於該的具體參考 工作簿 類別。

快速指南

下載此教學作為C#源代碼

本教程的完整免費 C# for Excel 原始碼,可作為壓縮的 Visual Studio 2017 項目檔案下載。

下載

在 GitHub 上探索此教學

該專案的源代碼在GitHub上提供C#和VB.NET版本。

只需幾分鐘即可使用此代碼輕鬆啟動和運行。該項目保存為 Microsoft Visual Studio 2017 項目,但與任何 .NET IDE 兼容。

如何在 GitHub 上用 C# 開啟和寫入 Excel 檔案

IronXL API 參考文檔

Explore the IronXL API 參考文檔, outlining the details of all of IronXL’s features, namespaces, classes, methods fields and enums.

查看 API 參考文件
.NET Excel庫可革新地將資料導入和導出到網頁應用程式和商業系統中。

伊萊賈·威廉姆斯

產品開發工程師

Elijah 是一個負責大型公司財務報告系統的開發和測試團隊的工程師。Elijah 一直是 IronXL 庫的早期使用者,並將其用於他們的 Excel 報告接口的核心。