告别繁琐!用 EPPlus 5 分钟搞定 Excel 文件读写,效率提升 10 倍!

1,462 阅读2分钟

大家好,我是深山踏红叶,今天我们在多聊一个Excel的类库,EPPlus 是一个用于在 .NET 环境中操作 Excel 文件的开源库。支持读取、创建和编辑 .xlsx 文件,需要注意的是在商业环境下需要授权许可,个人免费使用,需要了解更多的关于免费操作excel类库,我已经整理好了放在 dotnetshare.com 里面,欢迎大家自行查阅。

安装

第一步,老规矩,先安装

Install-Package EPPlus

使用

创建新的 Excel 文件

using OfficeOpenXml;
using System.IO; 

ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
{
    // 添加一个工作表
    var worksheet = package.Workbook.Worksheets.Add("Sheet1");
    // 在单元格 A1 中写入数据
    worksheet.Cells[1, 1].Value = "Hello, EPPlus!";
    // 设置 A2 单元格的值
    worksheet.Cells[2, 1].Value = "This is an example of EPPlus.";
    worksheet.Cells[3, 1].Value = "公众号:Net分享";
    // 保存文件
    package.Save();

}

读取 Excel 文件

using OfficeOpenXml;

ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
var fileInfo = new FileInfo("MyWorkbook.xlsx");
// 打开现有的 Excel 文件
using (var package = new ExcelPackage(fileInfo))
{
    // 获取工作表
    var worksheet = package.Workbook.Worksheets[0]; // 获取第一个工作表

    // 读取 A1 单元格的值
    string cellValue = worksheet.Cells[1, 1].Text;
    Console.WriteLine(cellValue); // 输出: "Hello, EPPlus!"
}

写入多行数据

EPPlus 支持在多个单元格中批量操作数据。

using OfficeOpenXml.Style;
using OfficeOpenXml;

ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
{
    var worksheet = package.Workbook.Worksheets.Add("Sheet1"); 
    // 写入数据
    for (int row = 1; row <= 5; row++)
    {
        worksheet.Cells[row, 1].Value = $"Row {row} Data:Netshare";
    } 
    // 保存文件
    package.Save();
}

设置单元格格式

你还可以设置单元格的格式,字体、对齐方式、数字格式等。

using OfficeOpenXml.Style;
using OfficeOpenXml;

ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
{
    var worksheet = package.Workbook.Worksheets.Add("Sheet1");

    // 设置 A1 单元格的字体颜色为红色,大小为 14
    var cell = worksheet.Cells[1, 1];
    cell.Value = "Data:Netshare ";
    cell.Style.Font.Color.SetColor(System.Drawing.Color.Red);
    cell.Style.Font.Size = 14;

    // 设置 A1 单元格的背景颜色为黄色
    cell.Style.Fill.PatternType = ExcelFillStyle.Solid;
    cell.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.Yellow);

    // 设置 A1 单元格的文本水平居中
    cell.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

    package.Save();
}

完成对 Excel 文件的操作后,记得保存它。EPPlus 会在 package.Save() 时自动保存文件。

读取和写入更多数据类型

读取和写入数字、日期、公式等类型的数据

using OfficeOpenXml;
using System.IO;

// 写入日期
worksheet.Cells[1, 1].Value = System.DateTime.Now;
// 写入数字
worksheet.Cells[2, 1].Value = 12345;
// 写入公式
worksheet.Cells[3, 1].Formula = "SUM(A1:A2)";

总结

EPPlus 是一个强大的 Excel 操作库,可以帮助你在 .NET 中轻松读取、写入和编辑 Excel 文件。它支持丰富的功能,如设置单元格样式、操作多个工作表、写入公式等。你可以根据具体需求选择使用相应的功能。

欢迎关注我的公众号“Net分享”,技术文章第一时间推送,随缘更新 , 分享一些你可能注意不到的细节