在本文中,您将学习如何在不安装MS Office的情况下使用C#以编程方式创建Excel XLS / XLSX文件。
如今,电子表格已成为保存,组织和分析数据的重要组成部分。 电子表格(例如MS Excel)能够进行计算和排序,生成图形或图表,创建预算以及执行许多其他会计或数据分析任务。 由于如今自动化解决方案的业务量越来越大,因此创建和处理Excel文档(XLS / XLSX)的趋势已经出现并以惊人的速度增长。 该用例提出了使用Excel自动化解决方案的需求。
根据上述情况,这篇综合文章旨在向您展示C#.NET应用程序中Excel自动化的一些基本功能。
C#API创建Excel文件
为了处理Excel文档,我们将使用Aspose.Cells for .NET ,这是一个功能强大的API,用于创建,读取和操作包括XLS和XLSX文件在内的电子表格文档。 您可以使用以下方式之一下载 或安装API:
使用NuGet软件包管理器
使用软件包管理器控制台
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 XLSX文件
如果要编辑数据并将其写入现有的Excel文件,也可以用类似的方式进行。 只需使用Workbook对象加载源Excel电子表格文档,然后访问所需的工作表和单元格。 以下是编辑现有Excel文件的步骤。
在FileStream对象中打开Excel文件。 创建一个Workbook 实例,并使用FileStream对象对其进行初始化。 分别使用Worksheet 和Cell 类访问工作表和单元格。 将工作簿另存为Excel .xlsx文件。
下面的代码示例演示如何在C#中将数据编辑和写入现有Excel XLSX文件。
使用C#在Excel XLSX文件中创建图表或图形
Excel电子表格提供了一种使用图形和图表直观地分析或呈现数据的好方法。 .NET的Aspose.Cells提供了完整的类集 ,可以在Excel电子表格中创建和处理各种图表 ,其中每个类均用于执行某些特定任务。
为了在Excel文件中创建图表,您必须执行以下步骤:
通过访问工作表的单元格,将一些数据(用作数据源)添加到工作表中。 通过使用ChartType 枚举传递图表的类型,使用Worksheet.Charts 集合将新的图表对象添加到工作表中。 从Chart 对象的集合中获取新创建的图表。 指定单元格的范围,以将数据源提供给图表对象。 将工作簿另存为Excel .xlsx文件。
下面的代码示例演示如何在C#中的Excel XLSX文件中创建图表。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 实例化代表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);
View the code on Gist .
输出
了解有关使用 C#在Excel工作表中创建图表的更多信息。
在C#中的Excel XLSX文件中创建表
您还可以从Excel工作表中的单元格范围中创建一个表,并为表中的总数(总和,计数等)添加一行。 以下是使用Aspose.Cells for .NET在Excel(XLSX)文件中创建表的步骤:
下面的代码示例演示如何在C#中的Excel工作表中创建表。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 实例化代表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);
View the code on Gist .
输出
了解有关使用 C#在Excel工作表中使用表的更多信息。
结论
在本文中,您学习了如何使用C#从头创建Excel文件。 此外,您已经了解了如何在表格中插入数据,生成图表以及在Excel文件中插入表格。 您可以查看Aspose.Cells for .NET的文档,以了解在C#中操纵Excel文件的高级功能 。
相关文章