在本文中,您将学习如何在不安装 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 对象。
Workbook wb = new Workbook();

// 创建新工作簿时,会将默认的“Sheet1”添加到工作簿中。
Worksheet sheet = wb.Worksheets[0];

// 访问工作表中的“A1”单元格。
Cell cell = sheet.Cells["A1"];

// 输入“Hello World!”文本到“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 对象。
Workbook wb = new Workbook("Excel.xlsx");

// 从工作簿访问“Sheet1”。
Worksheet sheet = wb.Worksheets[0];

// 访问工作表中的“A1”单元格。
Cell cell = sheet.Cells["A1"];

// 输入“Hello World!”文本到“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 对象。
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) 文件和添加表的步骤:

  • 加载 Excel 工作簿或使用 Workbook 类创建一个新工作簿。
  • 将数据添加到工作表的单元格。
  • 将新的 ListObject 添加到工作表。
  • ListObject.ShowTotals 属性设置为 true。
  • 计算总数并将工作簿另存为 Excel .xlsx 文件。

以下代码示例展示了如何在 C# 中的 Excel 文件中创建表。

// 实例化一个表示 Excel 文件的 Workbook 对象。
Workbook wb = new Workbook();

// 获取第一个工作表。
Worksheet sheet = wb.Worksheets[0];

// 获取 Worksheet 的单元格集合
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 文件