赞
踩
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
工具→Nuget包管理器→程序包管理器控制台
输入如下命令:
代码语言:javascript
复制
Install-Package ClosedXML
代码语言:javascript
复制
- /// <summary>
- /// 插入DataTable
- /// </summary>
- private 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");
- }
-
- }

代码语言:javascript
复制
- /// <summary>
- /// 插入list
- /// </summary>
- private static void InsertList()
- {
-
- List<UserInfo> list = new List<UserInfo>();
- 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");
- }
-
- }

代码语言:javascript
复制
- /// <summary>
- /// 插入图片
- /// </summary>
- private 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");
- }
- }
代码语言:javascript
复制
- /// <summary>
- /// 大批量插入list 20万条记录时间5.9秒
- /// </summary>
- private static void BatchInsertList()
- {
- Stopwatch stopwatch = new Stopwatch();
- stopwatch.Start();
- List<UserInfo> list = new List<UserInfo>();
- 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应用程序的开发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。