EPPlus的介绍
EPPlus是一个用于处理Excel文件的开源C#库。它允许开发人员创建、读取和编辑Excel工作簿、工作表和单元格,而无需安装Microsoft Office或使用COM互操作。EPPlus是在.NET平台上构建的,因此它与.NET应用程序无缝集成,并提供了强大的Excel文件处理功能。
EPPlus的基本使用
从NuGet导入EPPlus
从NuGet上搜索EPPlus,如下图所示,然后添加到项目
我现在想从Excel中导入数据并进行一些处理,然后需要把处理完成后的数据再写入一个Excel文件
需要导入的数据所下图所示:
总共有392578条数据
导入数据的代码如下所示:
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效率提升了很多,使用方式也更简单了。
原文始发于微信公众号(DotNet学习交流):C#使用EPPlus导入Excel数据
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/230952.html