做网站需提供什么资料,wordpress怎么适应手机端,房屋建设网站,如何做360网站优化一、类库介绍
ClosedXML是一个用于读取、操作和写入Excel 2007 (.xlsx, .xlsm)文件的.NET第三方库。它基于OpenXML#xff0c;但与OpenXML相比#xff0c;ClosedXML具有更高的性能和更易于使用的API接口。 ClosedXML支持XML文档的解析和生成#xff0c;可以处理复杂的XML结…一、类库介绍
ClosedXML是一个用于读取、操作和写入Excel 2007 (.xlsx, .xlsm)文件的.NET第三方库。它基于OpenXML但与OpenXML相比ClosedXML具有更高的性能和更易于使用的API接口。 ClosedXML支持XML文档的解析和生成可以处理复杂的XML结构。同时它还提供了丰富的API可以方便地进行XML文档的查询、修改、添加和删除操作。此外ClosedXML还支持XPath和XSLT查询可以进行高效的XML数据检索和转换。
在使用ClosedXML时您需要将ClosedXML.dll添加到您的项目中并使用相关的API进行Excel文件的读取和写入。ClosedXML支持多种数据类型包括字符串、数字、日期、布尔值等并支持单元格格式设置。此外您还可以使用ClosedXML进行样式设置包括字体、边框、颜色等。
除了基本的Excel文件操作ClosedXML还支持图表、公式、数据验证、条件格式等高级功能。同时ClosedXML还提供了多种异常处理机制可以帮助您更好地处理异常情况。
官网 https://docs.closedxml.io/en/latest/
https://github.com/ClosedXML/ClosedXML
二、安装方式
2.1 直接nuget搜索安装 2.2 命令行安装方式
工具→Nuget包管理器→程序包管理器控制台 输入如下命令
代码语言javascript
复制
Install-Package ClosedXML
三、性能测试
3.1 保存性能 3.2 读取性能 四、测试案例
4.1 直接插入DataTable
代码语言javascript
复制 /// summary/// 插入DataTable/// /summaryprivate static void InsertDataTable(){// 创建一个新的 DataTable 对象DataTable dataTable new DataTable();// 定义表的列dataTable.Columns.Add(ID, typeof(int));dataTable.Columns.Add(Name, typeof(string));dataTable.Columns.Add(Age, typeof(int));// 添加数据行dataTable.Rows.Add(1, John, 25);dataTable.Rows.Add(2, Alice, 30);dataTable.Rows.Add(3, Bob, 40);using (var workbook new XLWorkbook()){var worksheet workbook.Worksheets.Add(Sheet1);worksheet.FirstCell().InsertTable(dataTable);workbook.SaveAs(D:\\tableDemo.xlsx);}} 4.2 直接插入list
代码语言javascript
复制 /// summary/// 插入list/// /summaryprivate static void InsertList(){ListUserInfo list new ListUserInfo();list.Add(new UserInfo{name 小明,age 30,address 北京});list.Add(new UserInfo{name 小李,age 20,address 郑州});list.Add(new UserInfo{name 小强,age 26,address 上海});using (var workbook new XLWorkbook()){var worksheet workbook.Worksheets.Add(Sheet1);// 设置列头worksheet.Cell(A1).Value 姓名;worksheet.Cell(A1).Style.Font.Bold true;worksheet.Cell(A1).Style.Fill.SetBackgroundColor(XLColor.Gray);worksheet.Cell(B1).Value 年龄;worksheet.Cell(B1).Style.Font.Bold true;worksheet.Cell(B1).Style.Fill.SetBackgroundColor(XLColor.Gray);worksheet.Cell(C1).Value 地址;worksheet.Cell(C1).Style.Font.Bold true;worksheet.Cell(C1).Style.Fill.SetBackgroundColor(XLColor.Gray);var table worksheet.Cell(A2).InsertData(list);workbook.SaveAs(D:\\listDemo.xlsx);}} 4.3 添加图片
代码语言javascript
复制 /// summary/// 插入图片/// /summaryprivate static void InsertImage(){using (var workbook new XLWorkbook()){var worksheet workbook.Worksheets.Add(Sheet1);worksheet.AddPicture(D:\\1.png) .MoveTo(worksheet.Cell(1, 1)); workbook.SaveAs(D:\\imageDemo.xlsx);}} 4.4 大批量导出
代码语言javascript
复制 /// summary/// 大批量插入list 20万条记录时间5.9秒/// /summaryprivate static void BatchInsertList(){Stopwatch stopwatch new Stopwatch();stopwatch.Start();ListUserInfo list new ListUserInfo();for (int i 0; i 200000; i){list.Add(new UserInfo{name 小明i,age 30,address 北京});} using (var workbook new XLWorkbook()){var worksheet workbook.Worksheets.Add(Sheet1);// 设置列头worksheet.Cell(A1).Value 姓名;worksheet.Cell(A1).Style.Font.Bold true;worksheet.Cell(A1).Style.Fill.SetBackgroundColor(XLColor.Gray);worksheet.Cell(B1).Value 年龄;worksheet.Cell(B1).Style.Font.Bold true;worksheet.Cell(B1).Style.Fill.SetBackgroundColor(XLColor.Gray);worksheet.Cell(C1).Value 地址;worksheet.Cell(C1).Style.Font.Bold true;worksheet.Cell(C1).Style.Fill.SetBackgroundColor(XLColor.Gray);var table worksheet.Cell(A2).InsertData(list);workbook.SaveAs(D:\\batchListDemo.xlsx);}stopwatch.Stop();// 获取代码执行时间TimeSpan elapsedTime stopwatch.Elapsed;// 输出执行时间Console.WriteLine(10万条数据导出执行时间: {0}, elapsedTime.TotalSeconds 秒);Console.ReadKey(); } 五、总结
总之ClosedXML是一个功能强大、易于使用、性能优越的.NET Excel库适用于各种Excel应用程序的开发。