在没有MS Office的情况下以C#编程方式创建MS Excel文件

在本文中,您将学习如何在不安装MS Office的情况下使用C#以编程方式创建Excel XLS / XLSX文件。

在C#API中创建Excel文件

如今,电子表格已成为保存,组织和分析数据的重要组成部分。 电子表格(例如MS Excel)能够进行计算和排序,生成图形或图表,创建预算以及执行许多其他会计或数据分析任务。 由于如今自动化解决方案的业务量越来越大,因此创建和处理Excel文档(XLS / XLSX)的趋势已经出现并以惊人的速度增长。 该用例提出了使用Excel自动化解决方案的需求。

根据上述情况,这篇综合文章旨在向您展示C#.NET应用程序中Excel自动化的一些基本功能。

C#API创建Excel文件

为了处理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文件。

输出

在C#中创建Excel文件

用C#将数据写入Excel XLSX文件

如果要编辑数据并将其写入现有的Excel文件,也可以用类似的方式进行。 只需使用Workbook对象加载源Excel电子表格文档,然后访问所需的工作表和单元格。 以下是编辑现有Excel文件的步骤。

  • 在FileStream对象中打开Excel文件。
  • 创建一个Workbook实例,并使用FileStream对象对其进行初始化。
  • 分别使用WorksheetCell类访问工作表和单元格。
  • 将工作簿另存为Excel .xlsx文件。

下面的代码示例演示如何在C#中将数据编辑和写入现有Excel XLSX文件。

使用C#在Excel XLSX文件中创建图表或图形

Excel电子表格提供了一种使用图形和图表直观地分析或呈现数据的好方法。 .NET的Aspose.Cells提供了完整的类集,可以在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工作表中的单元格范围中创建一个表,并为表中的总数(总和,计数等)添加一行。 以下是使用Aspose.Cells for .NET在Excel(XLSX)文件中创建表的步骤:

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

下面的代码示例演示如何在C#中的Excel工作表中创建表。

// 实例化代表Excel文件的Workbook对象。
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工作表中使用表的更多信息。

结论

在本文中,您学习了如何使用C#从头创建Excel文件。 此外,您已经了解了如何在表格中插入数据,生成图表以及在Excel文件中插入表格。 您可以查看Aspose.Cells for .NET的文档,以了解在C#中操纵Excel文件的高级功能

相关文章