EPPlus的介绍
EPPlus是一个用于处理Excel文件的开源C#库。它允许开发人员创建、读取和编辑Excel工作簿、工作表和单元格,而无需安装Microsoft Office或使用COM互操作。EPPlus是在.NET平台上构建的,因此它与.NET应用程序无缝集成,并提供了强大的Excel文件处理功能。
EPPlus的基本使用
从NuGet导入EPPlus
从NuGet上搜索EPPlus,如下图所示,然后添加到项目
一个简单的案例
我现在想从Excel中导入数据并进行一些处理,然后需要把处理完成后的数据再写入一个Excel文件
需要导入的数据所下图所示:

总共有条数据

导入数据的代码如下所示:
OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Excel Files (*.xlsx; *.xls)|*.xlsx; *.xls"; openFileDialog.FilterIndex = 1; openFileDialog.Multiselect = false; if (openFileDialog.ShowDialog() == DialogResult.OK) { selectedFile = openFileDialog.FileName; MessageBox.Show($"您选中的文件路径为:{selectedFile}"); ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; using (var package = new ExcelPackage(new System.IO.FileInfo(selectedFile))) { // 获取工作簿的第一个工作表 var worksheet = package.Workbook.Worksheets[0]; // 获取工作表的行数和列数 int rowCount = worksheet.Dimension.Rows; int colCount = worksheet.Dimension.Columns; // 循环遍历工作表中的数据 for (int row = 0; row < rowCount - 1; row++) { RawData data = new RawData(); data.id = (double)worksheet.Cells[row + 2, 1].Value; data.speed = (double)worksheet.Cells[row + 2, 2].Value; data.power = (double)worksheet.Cells[row + 2, 3].Value; data.fcrr = (double)worksheet.Cells[row + 2, 4].Value; DataList.Add(data); } MessageBox.Show("导入数据成功!!!"); }
讯享网
运行看看
导入39万条数据的性能分析如下图所示,不到10秒,内存只从一百多M升高到了四百多M


成功导入Excel数据,如下图所示:

当我们对数据进行的一些处理完成之后,需要重新写入Excel
写入Excel的代码如下所示:
讯享网 // 设置Excel文件路径 string filePath = "test.xlsx"; // 创建一个新的Excel包 FileInfo file = new FileInfo(filePath); using (ExcelPackage package = new ExcelPackage(file)) { // 添加一个工作表 ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1"); string[] headers = { "序号", "主机转速取整", "主机功率取整", "主机油耗率-右" }; // 写入表头 for (int col = 1; col <= headers.Length; col++) { worksheet.Cells[1, col].Value = headers[col - 1]; } // 写入数据 for (int row = 1; row <= FirstWashData.Count; row++) { worksheet.Cells[row + 1, 1].Value = FirstWashData[row - 1].id; worksheet.Cells[row + 1, 2].Value = FirstWashData[row - 1].speed; worksheet.Cells[row + 1, 3].Value = FirstWashData[row - 1].power; worksheet.Cells[row + 1, 4].Value = FirstWashData[row - 1].fcrr; } // 保存Excel文件 package.Save(); MessageBox.Show("写入到Excel文件成功!!!");
需要写入的2万9千多条数据

写入2万9千多条数据非常快,不到一秒就完成了
打开写入的Excel,成功写入2万九千多条数据
以上,就是C#使用EPPlus从Excel上读取数据与写入数据的例子,其实EPPlus还有很多强大的功能,还请读者们自行探索。
总结
使用EPPlus方便了我们操作Excel,比起使用Microsoft.Office.Interop.Excel效率提升了很多,使用方式也更简单了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/129925.html