在C#中建立XLSX檔案

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

在商業自動化如此普遍的今天,我們經常需要在 .NET 應用程式中處理 Excel 試算表,包括創建試算表和程式化插入數據。 在下面的教程中,我們將學習如何使用C#程式設計來創建不同格式的Excel電子表格(.xls.xlsx.csv.tsv)、設置儲存格樣式以及插入資料。


How to Create XLXL File in C#

  1. 安裝 Excel 函式庫以創建 XLSX 文件。

  2. 使用Workbook物件來建立 Excel 檔案。

  3. 選擇預設的Worksheet

  4. 將資料新增至預設的Worksheet

  5. 將 Excel 檔案儲存到磁碟。

    第一步

1. 下載 IronXL DLL

IronXL 提供在 C# 專案中建立 Excel (.xlsx) 文件的最簡便方法。 下載 DLLNuGet 安裝 並免費用於開發。

Install-Package IronXL.Excel

如何操作教程

2. 建立一個工作簿

使用這款軟體,我們可以插入數據並設置單元格屬性,如字體樣式或邊框。

2.1 創建 .XLSX 檔案

使用此程式碼建立 WorkBook 以製作新的 Excel 檔案,預設副檔名為 .xlsx

/** Create XLSX File anchor-create-a-workbook **/ WorkBook wb = WorkBook.Create();
/** Create XLSX File anchor-create-a-workbook **/ WorkBook wb = WorkBook.Create();
''' '''Create XLSX File '''anchor-create-a-workbook '''* Dim wb As WorkBook = WorkBook.Create()
$vbLabelText   $csharpLabel

2.2 創建 .XLS 文件

如果您想創建一個 .xls 擴展名的文件,請使用:

WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
$vbLabelText   $csharpLabel

3. 創建 Excel 工作表

在選擇的文件格式中建立一個工作簿後,創建一個Excel工作表。 此程式碼將在工作簿wb中創建一個名為sheet1的新工作表ws1

WorkSheet ws1 = wb.CreateWorkSheet("sheet1");
WorkSheet ws1 = wb.CreateWorkSheet("sheet1");
Dim ws1 As WorkSheet = wb.CreateWorkSheet("sheet1")
$vbLabelText   $csharpLabel

3.1 建立多個工作表

可以以相同的方式創建多個工作表:

/** Create WorkSheets anchor-create-an-excel-worksheet **/ WorkSheet ws2 = wb.CreateWorkSheet("sheet2"); WorkSheet ws3 = wb.CreateWorkSheet("sheet3");
/** Create WorkSheets anchor-create-an-excel-worksheet **/ WorkSheet ws2 = wb.CreateWorkSheet("sheet2"); WorkSheet ws3 = wb.CreateWorkSheet("sheet3");
''' '''Create WorkSheets '''anchor-create-an-excel-worksheet '''* Dim ws2 As WorkSheet = wb.CreateWorkSheet("sheet2") Dim ws3 As WorkSheet = wb.CreateWorkSheet("sheet3")
$vbLabelText   $csharpLabel

4. 將數據插入工作表中

現在我們可以輕鬆地將數據插入到工作表單元格中。

 worksheet ["CellAddress"].Value = "MyValue";
 worksheet ["CellAddress"].Value = "MyValue";
worksheet ("CellAddress").Value = "MyValue"
$vbLabelText   $csharpLabel

4.1 將數據插入特定工作表

例如,可以特定插入工作表 ws1 中的數據。 以下代碼將在工作表ws1A1單元格中寫入Hello World

/** Insert WorkSheet Data anchor-insert-data-into-worksheets **/ ws1 ["A1"].Value = "Hello World";
/** Insert WorkSheet Data anchor-insert-data-into-worksheets **/ ws1 ["A1"].Value = "Hello World";
''' '''Insert WorkSheet Data '''anchor-insert-data-into-worksheets '''* ws1 ("A1").Value = "Hello World"
$vbLabelText   $csharpLabel

4.2 將資料插入多個儲存格

也可以使用範圍函數將數據寫入許多單元格。 以下代碼將在工作表ws1中把A3A8的資料寫為NewValue

ws1 ["A3:A8"].Value = "NewValue";
ws1 ["A3:A8"].Value = "NewValue";
ws1 ("A3:A8").Value = "NewValue"
$vbLabelText   $csharpLabel

5. 建立範例專案

我們將創建一個新的 Excel 文件Sample.xlsx並插入數據。

/** Sample Project anchor-make-a-sample-project **/ using IronXL; static void Main(string [] args) { WorkBook wb = WorkBook.Create(); WorkSheet ws1 = wb.CreateWorkSheet("sheet1"); ws1 ["A1"].Value = "Hello"; ws1 ["A2"].Value = "World"; ws1 ["B1:B8"].Value = "RangeValue"; wb.SaveAs("Sample.xlsx"); }
/** Sample Project anchor-make-a-sample-project **/ using IronXL; static void Main(string [] args) { WorkBook wb = WorkBook.Create(); WorkSheet ws1 = wb.CreateWorkSheet("sheet1"); ws1 ["A1"].Value = "Hello"; ws1 ["A2"].Value = "World"; ws1 ["B1:B8"].Value = "RangeValue"; wb.SaveAs("Sample.xlsx"); }
''' '''Sample Project '''anchor-make-a-sample-project '''* Imports IronXL Shared Sub Main(ByVal args() As String)	Dim wb As WorkBook = WorkBook.Create()	Dim ws1 As WorkSheet = wb.CreateWorkSheet("sheet1")	ws1 ("A1").Value = "Hello"	ws1 ("A2").Value = "World"	ws1 ("B1:B8").Value = "RangeValue"	wb.SaveAs("Sample.xlsx") End Sub
$vbLabelText   $csharpLabel

注意:默認情況下,新的 Excel 文件將創建在專案的 bin>Debug 資料夾中。 如果我們想在自訂路徑中建立新檔案,請使用:

wb.SaveAs(@"E:\IronXL\Sample.xlsx");

這是我們新建立的 Excel 檔案 sample.xlsx 的截圖:

Doc5 1 related to 5. 建立範例專案

很明顯,在你的 C# 應用程式中使用 IronXL 建立 Excel 文件是多麼簡單。


6. 設定Excel文件的ExcelMetadata

IronXL 也提供設置Excel文件的元數據功能。

/** Set Metadata anchor-set-metadata-for-excel-files **/ WorkBook wb = WorkBook.Create(); wb.Metadata.Author = "AuthorName"; wb.Metadata.Title="TitleValue";
/** Set Metadata anchor-set-metadata-for-excel-files **/ WorkBook wb = WorkBook.Create(); wb.Metadata.Author = "AuthorName"; wb.Metadata.Title="TitleValue";
''' '''Set Metadata '''anchor-set-metadata-for-excel-files '''* Dim wb As WorkBook = WorkBook.Create() wb.Metadata.Author = "AuthorName" wb.Metadata.Title="TitleValue"
$vbLabelText   $csharpLabel

7. 設定單元格樣式

在您的C#應用程式中設定Excel工作表的單元格樣式非常簡單。 IronXL 提供所有必要的單元格樣式屬性。

7.1. 設定字體樣式

字體樣式可以如下設置:

/** Set Font Style anchor-set-font-style **/ WorkSheet ["CellAddress"].Style.Font.Bold =true; WorkSheet ["CellAddress"].Style.Font.Italic =true;
/** Set Font Style anchor-set-font-style **/ WorkSheet ["CellAddress"].Style.Font.Bold =true; WorkSheet ["CellAddress"].Style.Font.Italic =true;
''' '''Set Font Style '''anchor-set-font-style '''* WorkSheet ("CellAddress").Style.Font.Bold =True WorkSheet ("CellAddress").Style.Font.Italic =True
$vbLabelText   $csharpLabel

7.2. 添加刪除線

對任何儲存格值進行刪除線的操作如下:

/** Add Strikeout anchor-add-strikeout **/ WorkSheet ["CellAddress"].Style.Font.Strikeout = true;
/** Add Strikeout anchor-add-strikeout **/ WorkSheet ["CellAddress"].Style.Font.Strikeout = true;
''' '''Add Strikeout '''anchor-add-strikeout '''* WorkSheet ("CellAddress").Style.Font.Strikeout = True
$vbLabelText   $csharpLabel

7.3. 設定邊框樣式

可以使用以下代碼進行邊框樣式設計:

/** Set Border Style anchor-set-border-style **/ WorkSheet ["CellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
/** Set Border Style anchor-set-border-style **/ WorkSheet ["CellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
''' '''Set Border Style '''anchor-set-border-style '''* WorkSheet ("CellAddress").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted
$vbLabelText   $csharpLabel

8. 應用單元格樣式示例項目

讓我們看看如何使用下面的示例項目來設置多個單元格樣式並將其整合起來。

/** Sample Cell Styling Set anchor-apply-cell-styling-sample-project **/ using IronXL; static void Main(string [] args) { WorkBook wb = WorkBook.Create(); WorkSheet ws = wb.CreateWorkSheet("sheet1"); ws ["A1"].Value = "MyVal"; ws ["B2"].Value = "Hello World"; ws ["A1"].Style.Font.Strikeout = true; ws ["B2"].Style.Font.Bold =true; ws ["B2"].Style.Font.Italic =true; ws ["C3"].Style.TopBorder.Type = IronXL.Styles.BorderType.Double; ws ["C3"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted; ws ["C3"].Style.LeftBorder.Type = IronXL.Styles.BorderType.Thick; ws ["C3"].Style.RightBorder.Type = IronXL.Styles.BorderType.SlantedDashDot; ws ["C3"].Style.BottomBorder.SetColor("#ff6600"); ws ["C3"].Style.TopBorder.SetColor("#ff6600"); wb.SaveAs("Sample.xlsx"); }
/** Sample Cell Styling Set anchor-apply-cell-styling-sample-project **/ using IronXL; static void Main(string [] args) { WorkBook wb = WorkBook.Create(); WorkSheet ws = wb.CreateWorkSheet("sheet1"); ws ["A1"].Value = "MyVal"; ws ["B2"].Value = "Hello World"; ws ["A1"].Style.Font.Strikeout = true; ws ["B2"].Style.Font.Bold =true; ws ["B2"].Style.Font.Italic =true; ws ["C3"].Style.TopBorder.Type = IronXL.Styles.BorderType.Double; ws ["C3"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted; ws ["C3"].Style.LeftBorder.Type = IronXL.Styles.BorderType.Thick; ws ["C3"].Style.RightBorder.Type = IronXL.Styles.BorderType.SlantedDashDot; ws ["C3"].Style.BottomBorder.SetColor("#ff6600"); ws ["C3"].Style.TopBorder.SetColor("#ff6600"); wb.SaveAs("Sample.xlsx"); }
''' '''Sample Cell Styling Set '''anchor-apply-cell-styling-sample-project '''* Imports IronXL Shared Sub Main(ByVal args() As String)	Dim wb As WorkBook = WorkBook.Create()	Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")	ws ("A1").Value = "MyVal"	ws ("B2").Value = "Hello World"	ws ("A1").Style.Font.Strikeout = True	ws ("B2").Style.Font.Bold =True	ws ("B2").Style.Font.Italic =True	ws ("C3").Style.TopBorder.Type = IronXL.Styles.BorderType.Double	ws ("C3").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted	ws ("C3").Style.LeftBorder.Type = IronXL.Styles.BorderType.Thick	ws ("C3").Style.RightBorder.Type = IronXL.Styles.BorderType.SlantedDashDot	ws ("C3").Style.BottomBorder.SetColor("#ff6600")	ws ("C3").Style.TopBorder.SetColor("#ff6600")	wb.SaveAs("Sample.xlsx") End Sub
$vbLabelText   $csharpLabel

這是我們新創建的 Excel 文件 sample.xlsx 的螢幕截圖。

Doc5 2 related to 8. 應用單元格樣式示例項目

9. 下一步和 Excel 教程

如果您想深入了解並閱讀 .NET Excel 建立的逐步指南,請查看使用 C# 創建 Excel 文件 教程。


快速指南

Documentation related to 快速指南

深入 API 參考文件

閱讀 IronXL 的文件,其中包含對 IronXL 各命名空間、功能集、類別、方法字段和枚舉的解釋。

查看 API 參考資料
查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。