在本文中,您將了解如何在不安裝 MS Office 的情況下使用 C# 創建 Excel XLS/XLSX 文件。

在 C# API 中創建 Excel 文件

如今,電子表格已成為保存、組織和分析數據的重要組成部分。電子表格(例如 MS Excel)能夠進行計算和排序、生成圖形或圖表、創建預算以及執行許多其他會計或數據分析任務。由於自動化解決方案如今在商業中越來越流行,創建和操作 Excel 文檔 (XLS/XLSX) 的趨勢已經出現並以巨大的速度增長。此用例提出了對 Excel 自動化解決方案的需求。

根據上述場景,這篇綜合文章旨在向您展示 C# .NET 應用程序中 Excel 自動化的一些基本功能。

用於創建 Excel 文件的 C# API - 免費下載

為了使用 Excel 文檔,我們將使用 Aspose.Cells for .NET,這是一個強大的 API 來創建、讀取和操作電子表格文檔,包括 XLS 和 XLSX 文件。您可以使用以下方式之一 下載 或安裝 API:

使用 NuGet 包管理器

C# Excel 自動化庫

使用包管理器控制台

PM> Install-Package Aspose.Cells

在 C# 中創建 Excel XLS 或 XLSX

Excel 文件也稱為工作簿,它由單個或多個工作表組成,其中包含用於保存數據的行和列。因此,工作簿充當 Excel 文件中工作表的容器。因此,為了創建 Excel 文件,您將首先創建一個工作簿,然後創建該工作簿中的工作表。以下是使用 Aspose.Cells for .NET 創建 Excel 文件的步驟。

  • 創建 Workbook 類的實例。
  • 訪問工作簿的第一個工作表(默認創建)。
  • 訪問工作表的所需單元格並將值放入單元格中。
  • 將工作簿另存為 XLS 或 XLSX 文件。

以下代碼示例展示瞭如何使用 C# 創建 Excel XLSX 文件。

// 實例化一個代表 Excel 文件的工作簿對象。
Workbook wb = new Workbook();

// 創建新工作簿時,默認的“Sheet1”會添加到工作簿中。
Worksheet sheet = wb.Worksheets[0];

// 訪問工作表中的“A1”單元格。
Cell cell = sheet.Cells["A1"];

// 輸入“你好世界!”文本到“A1”單元格。
cell.PutValue("Hello World!");

// 將 Excel 另存為 .xlsx 文件。
wb.Save("Excel.xlsx", SaveFormat.Xlsx);

輸出

在 C# 中創建 Excel 文件

在 C# 中將數據寫入 Excel XLSX 文件

如果您想編輯數據並將數據寫入現有的 Excel 文件,您也可以以類似的方式進行。只需使用 Workbook 對象加載源 Excel 電子表格文檔並訪問所需的工作表和單元格。以下是編輯現有 Excel 文件的步驟。

  • 在 FileStream 對像中打開 Excel 文件。
  • 創建 Workbook 的實例並使用 FileStream 對像對其進行初始化。
  • 分別使用 WorksheetCell 類訪問工作表和單元格。
  • 將工作簿另存為 Excel .xlsx 文件。

以下代碼示例顯示如何在 C# 中編輯數據並將數據寫入現有的 Excel XLSX 文件。

// 實例化一個代表 Excel 文件的工作簿對象。
Workbook wb = new Workbook("Excel.xlsx");

// 從工作簿訪問“Sheet1”。
Worksheet sheet = wb.Worksheets[0];

// 訪問工作表中的“A1”單元格。
Cell cell = sheet.Cells["A1"];

// 輸入“你好世界!”文本到“A1”單元格。
cell.PutValue("The cell's value is updated.");

// 將 Excel 文件另存為 .xlsx。
wb.Save("Excel_updated.xlsx", SaveFormat.Xlsx);

C# 創建帶有圖表或圖形的 Excel 文件

Excel 電子表格提供了一種使用圖形和圖表直觀地分析或呈現數據的好方法。 Aspose.Cells for .NET 提供了一套完整的類來創建和操作 Excel 電子表格中的各種圖表,其中每個類都用於執行一些特定的任務。

要在 Excel 文件中創建圖表,您必須執行以下步驟:

  • 通過訪問其單元格向工作表添加一些數據(用作數據源)。
  • 通過使用 ChartType 枚舉傳遞圖表類型,使用 Worksheet.Charts 集合將新圖表對象添加到工作表。
  • Chart 對像中的集合中獲取新創建的圖表。
  • 指定單元格的範圍以向圖表對象提供數據源。
  • 將工作簿另存為 Excel .xlsx 文件。

以下代碼示例展示瞭如何在 C# 中創建 Excel XLSX 文件和添加圖表。

// 實例化一個代表 Excel 文件的工作簿對象。
Workbook wb = new Workbook();

// 將新工作表添加到 Excel 對象。
int sheetIndex = wb.Worksheets.Add();

// 通過傳遞其工作表索引獲取新添加工作表的引用。
Worksheet worksheet = wb.Worksheets[sheetIndex];

// 向單元格添加虛擬值。
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(4);
worksheet.Cells["B2"].PutValue(20);
worksheet.Cells["B3"].PutValue(50);

// 向工作表添加圖表。
int chartIndex = worksheet.Charts.Add(Charts.ChartType.Pyramid, 5, 0, 15, 5);

// 訪問新添加圖表的實例。
Charts.Chart chart = worksheet.Charts[chartIndex];

// 將 SeriesCollection(圖表數據源)添加到從“A1”單元格到“B3”單元格的圖表中。
chart.NSeries.Add("A1:B3", true);

// 保存 Excel 文件。
wb.Save("Excel_Chart.xlsx", SaveFormat.Xlsx);

輸出

在 C# 中的 Excel 中創建圖表

了解更多 關於使用 C# 在 Excel 工作表中創建圖表的信息。

在 C# 中創建帶錶的 Excel XLSX 文件

您還可以根據 Excel 工作表中的單元格範圍創建表格,並在表格中添加一行作為總計(總和、計數等)。以下是在 C# 中創建 Excel (XLSX) 文件和添加表格的步驟:

  • 使用 Workbook 類加載 Excel 工作簿或創建新工作簿。
  • 將數據添加到工作表的單元格中。
  • 將新的 ListObject 添加到工作表。
  • ListObject.ShowTotals 屬性設置為 true。
  • 計算總數並將工作簿另存為 Excel .xlsx 文件。

以下代碼示例顯示瞭如何使用 C# 在 Excel 文件中創建表格。

// 實例化一個代表 Excel 文件的工作簿對象。
Workbook wb = new Workbook();

// 得到第一個工作表。
Worksheet sheet = wb.Worksheets[0];

// 獲取工作表的單元格集合
Cells cells = sheet.Cells;

// 為單元格設置值
Aspose.Cells.Cell cell = cells["A1"];
cell.PutValue("Employee");
cell = cells["B1"];
cell.PutValue("Quarter");
cell = cells["C1"];
cell.PutValue("Product");
cell = cells["D1"];
cell.PutValue("Continent");
cell = cells["E1"];
cell.PutValue("Country");
cell = cells["F1"];
cell.PutValue("Sale");

cell = cells["A2"];
cell.PutValue("David");
cell = cells["A3"];
cell.PutValue("David");
cell = cells["A4"];
cell.PutValue("David");
cell = cells["A5"];
cell.PutValue("David");
cell = cells["A6"];
cell.PutValue("James"); 

cell = cells["B2"];
cell.PutValue(1);
cell = cells["B3"];
cell.PutValue(2);
cell = cells["B4"];
cell.PutValue(3);
cell = cells["B5"];
cell.PutValue(4);
cell = cells["B6"];
cell.PutValue(1); 

cell = cells["C2"];
cell.PutValue("Maxilaku");
cell = cells["C3"];
cell.PutValue("Maxilaku");
cell = cells["C4"];
cell.PutValue("Chai");
cell = cells["C5"];
cell.PutValue("Maxilaku");
cell = cells["C6"];
cell.PutValue("Chang"); 

cell = cells["D2"];
cell.PutValue("Asia");
cell = cells["D3"];
cell.PutValue("Asia");
cell = cells["D4"];
cell.PutValue("Asia");
cell = cells["D5"];
cell.PutValue("Asia");
cell = cells["D6"];
cell.PutValue("Europe"); 


cell = cells["E2"];
cell.PutValue("China");
cell = cells["E3"];
cell.PutValue("India");
cell = cells["E4"];
cell.PutValue("Korea");
cell = cells["E5"];
cell.PutValue("India");
cell = cells["E6"];
cell.PutValue("France"); 


cell = cells["F2"];
cell.PutValue(2000);
cell = cells["F3"];
cell.PutValue(500);
cell = cells["F4"];
cell.PutValue(1200);
cell = cells["F5"];
cell.PutValue(1500);
cell = cells["F6"];
cell.PutValue(500); 

// 向工作表添加新的列表對象
Tables.ListObject listObject = sheet.ListObjects[sheet.ListObjects.Add("A1", "F6", true)];

// 為表格添加默認樣式
listObject.TableStyleType = Tables.TableStyleType.TableStyleMedium10;

// 顯示總計
listObject.ShowTotals = true;

// 設置季度字段的計算類型
listObject.ListColumns[1].TotalsCalculation = Tables.TotalsCalculation.Count;

// 保存 Excel 文件。
wb.Save("Excel_Table.xlsx", SaveFormat.Xlsx);

輸出

在 C# 中的 Excel 工作表中創建表

了解更多 關於使用 C# 在 Excel 工作表中處理表格的信息。

用於創建 Excel 文件的 C# .NET API - 獲取免費許可證

通過獲得免費臨時許可證,您可以不受評估限制地使用 Aspose.Cells for .NET。

結論

在本文中,您學習瞭如何使用 C# 從頭開始創建 Excel 文件。此外,您還了解瞭如何在工作表中插入數據、生成圖表以及在 Excel 文件中插入表格。您可以查看 Aspose.Cells for .NET 的文檔,了解在 C# 中操作 Excel 文件的高級功能。

相關文章

在 Excel 工作表中創建和排序數據透視表在 Node.js 應用程序中創建 Excel 文件使用 C# 在 Excel 文件中禁用兼容性檢查器
在 Java 中禁用 Excel 兼容性檢查器在 Python 中禁用 Excel 兼容性檢查器使用 C# 讀取 Excel 文件
使用 Java 讀取 Excel 文件使用 Python 讀取 Excel 文件