您的位置:

使用ClosedXML轻松生成Excel报表

在今天的互联网时代,各式各样的数据处理、展示需求对于我们编程人员来说已经变得越来越重要。而针对业务人员、对于数据展示和处理方法的多样性也日渐提高。所以,我们需要更高效、灵活的数据处理方式去满足这些需求。作为一名程序员,当我们在面临Excel报表的生成时,往往只了解到office API、NPOI等。今天,我要向大家介绍一种更加简便、高效的生成Excel报表方式——使用ClosedXML。

一、安装ClosedXML和引入DLL

ClosedXML是一个.NET库,可以用于生成Excel 2007+(xlsx)文件。为了使用ClosedXML,需要首先安装并引用DLL文件。可以通过Nuget包管理器来安装。首先我们要打开nuget包管理。

Install-Package ClosedXML

安装ClosedXML。

二、生成空白Excel文件和表格

在安装完毕后,我们可以将一个空白的Excel文件导入到程序中,然后通过API来进行操作。我们可以使用以下代码来实现:

//实例化新workbook,即新的Excel文件
var workbook = new XLWorkbook();  
//添加worksheet,即工作表
var worksheet = workbook.Worksheets.Add("Sheet1");  
//插入一行数据
worksheet.Cell(1, 1).Value = "这是一个表头"; 
//设置字体加粗 
worksheet.Cell(1, 1).Style.Font.SetBold(); 

可以看到,使用ClosedXML生成Excel报表是十分简单了。首先创建Excel文件,然后添加Worksheet,最后就可以开始给Worksheet添加数据、设置样式等操作了。这里插入了一行数据,并且设置了该数据的字体为加粗。这些操作都可以通过ClosedXML的API轻松地实现。

三、添加数据

在第二步中,我们已经创建了一个空白的Excel文件,并且添加了一行表头。下面我们要添加一些数据到这个Excel文件当中。

首先,我们来看一下如何添加一行数据:

//定义一个数组用于保存数据  
var myData = new[]  
{  
    new {Name = "张三", Age = "26", Address = "北京市海淀区"},  
    new {Name = "李四", Age = "24", Address = "上海市浦东新区"},  
    new {Name = "王五", Age = "29", Address = "广州市天河区"},  
};  
  
//添加到工作表当中  
//起始行  
int rowStartIndex = 2;  
//遍历数据  
foreach (var row in myData)  
{  
    //插入一行,从第2行开始,因为第一行是表头  
    var newRow = worksheet.Row(rowStartIndex++);  
    //插入数据到该行中  
    newRow.Cell(1).Value = row.Name;  
    newRow.Cell(2).Value = row.Age;  
    newRow.Cell(3).Value = row.Address;  
}

可以看到,我们首先定义了一个数组,用来保存需要插入的数据。然后通过遍历这个数组,将数据插入到Excel工作表中。在这里,我们通过给每行数据插入三个值的方式,将数据导入到表格当中。需要注意的是,别忘了在添加数据的过程中将起始行指定为第二行。

四、设置样式

如果我们想要让我们生成的Excel报表更加美观、专业,那么在设置样式方面也是十分重要的。ClosedXML也提供了一些API,让我们能够轻松地设置Excel报表的样式。

以下是设置样式常用的几种操作:

1、设置单元格颜色

//设置进入表格的背景色  
worksheet.Cell(1, 1).Style.Fill.BackgroundColor = XLColor.Turquoise; 

2、设置单元格字体颜色和大小

//设置字体颜色  
worksheet.Cell(1, 1).Style.Font.FontColor = XLColor.Red; 
//设置字体大小  
worksheet.Cell(1, 1).Style.Font.FontSize = 15; 

3、设置单元格对齐方式

//设置内容的对齐方式  
worksheet.Cell(1, 1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;  
worksheet.Cell(1, 1).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; 

可以看到,设置Excel报表的样式也是相当地简单。使用ClosedXML可以轻松地设置背景色、字体颜色和大小、内容对齐方式等信息。

五、生成Excel报表

在完成了上述操作后,我们已经生成了一份完整的Excel报表,现在就可以进行导出并保存了。

//指定Excel文件的导出路径  
string path = @"c:\test.xlsx";  
workbook.SaveAs(path); 

最后指定Excel文件的导出路径并保存即可。可以看到使用ClosedXML来生成一份Excel报表,是一件非常简单的事情。在这篇文章中,我们学习了如何使用ClosedXML来生成空白Excel、添加数据、设置样式和导出Excel报表等操作。相信在实际的开发中,大家可以根据自己的需求来进行更多更复杂的操作。