2025年C使用EPPlus导入Excel数据

C使用EPPlus导入Excel数据EPPlus 的介绍 EPPlus 是一个用于处理 Excel 文件的开源 C 库 它允许开发人员创建 读取和编辑 Excel 工作簿 工作表和单元格 而无需安装 Microsoft Office 或使用 COM 互操作 EPPlus 是在 NET 平台上构建的 因此它与 NET 应用程序无缝集成 并提供了强大的 Excel 文件处理功能 EPPlus 的基本使用

大家好,我是讯享网,很高兴认识大家。

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效率提升了很多,使用方式也更简单了。

小讯
上一篇 2025-03-09 07:47
下一篇 2025-01-28 16:09

相关推荐

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