如何使用mganss/ExcelMapper获取Excel表格的实际行号?
使用mganss/ExcelMapper将Excel行号映射到C#对象
可以实现,mganss/ExcelMapper支持把Excel的实际行号绑定到C#对象属性中,以下是两种常用方法:
方法一:遍历行时直接获取行号
先定义包含行号属性的C#对象:
public class DataModel { public string Name { get; set; } public int Age { get; set; } public int ExcelRowNumber { get; set; } // 存储行号的属性 }
读取Excel时,通过ForEach遍历每一行,同时提取ExcelRow的RowNumber赋值给对象:
var mapper = new ExcelMapper("data.xlsx"); var dataList = new List<DataModel>(); mapper.Worksheet<DataModel>().ForEach(row => { var model = row.Item; model.ExcelRowNumber = row.RowNumber; dataList.Add(model); });
方法二:配置自定义映射规则自动绑定
初始化ExcelMapper时,直接为行号属性配置映射逻辑,后续调用Fetch即可自动填充:
var mapper = new ExcelMapper("data.xlsx"); // 为ExcelRowNumber属性绑定行号获取逻辑 mapper.AddMapping<DataModel>(nameof(DataModel.ExcelRowNumber), row => row.RowNumber); var dataList = mapper.Fetch<DataModel>().ToList();
注:默认行号从表头后的第一行数据开始计数,若需包含表头行的行号,可先调整mapper.HeaderRowNumber属性后再读取数据。
内容的提问来源于stack exchange,提问作者Gregers
相关产品推荐
相关产品推荐

