ExcelHelper 是一个 Excel 读写操作的类,在 NPOI 的基础上进一步封装,使 C# 操作 Excel 的读写更加简单方便,Excel 中包含公式/单元格也可以轻松读取,也可以读取/写入多表单数据。
项目地址:
https://gitee.com/snipen/Helper.Core.Library/blob/master/ExcelHelper.cs
数据实体模型如下:
public class UserModel
{
public int UserID { get; set; }
public string UserName { get; set; }
public string UserGender { get; set; }
public string UserEmail { get; set; }
}
读取 Excel 数据代码如下:
ExcelHelper.ToEntityList<UserModel>("C:\\1.xlsx", "Sheet1", new
{
UserID = "编号",
UserName = "姓名",
UserGender = "性别",
UserEmail = "邮箱"
});
写入 Excel 数据代码如下:
List<UserModel> dataList = new List<UserModel>() { };
ExcelHelper.ToExcel<UserModel>(dataList, "C:\\1.xlsx", "Sheet1", new
{
UserID = "编号",
UserName = "姓名",
UserGender = "性别",
UserEmail = "邮箱"
});
按模板文件生成 Excel 文件
List<UserModel> dataList = new List<UserModel>() { };
ExcelHelper.ToTemplateExcel<UserModel>("C:\\template.xlsx", "Sheet1", "C:\\1.xlsx", new
{
//以 $ 前缀:通过匿名类型替换数据
//以 # 前缀:通过实体属性值替换数据
//以 &= 前缀:公式计算
//以 i 后缀:行数,会根据行索引进行替换
//以 _dataBegin 后缀:数据行开始,计算过程中会替换
//以 _dataEnd 后缀:数据行结束,计算过程中会替换
}, dataList);
生成带有合并单元格的 Excel 文件
List<UserModel> dataList = new List<UserModel>() { };
ExcelHelper.ToExcel<UserModel>(dataList, "C:\\1.xlsx", "Sheet1", new
{
UserID = "编号",
UserName = "姓名",
UserGender = "性别",
UserEmail = "邮箱"
}, null, true, null, (NPOI.SS.UserModel.ISheet iSheet, Dictionary<string, int> headerNameDict) =>
{
// 处理合并单元格
}, true, null);