【发布时间】:2021-11-25 16:52:03
【问题描述】:
我正在从 Excel 文件构建导入。我想将数据存储到我的班级中。 我想避免将列名硬编码到我的代码中,因为用户经常更改它们。我正在考虑一个配置文件,我可以将列名映射到类属性。
<excelFileSetting filePath="path\to\my\file.xlsx">
<columnMappings>
<add columnName="Excel Col Name" classProperty="MyNamespace.MyClass.MyProperty" />
</columnMappings>
</excelFileSetting>
我知道如何构建配置部分以及如何读取值。
问题是当我读取 Excel 文件时,如何将单元格值映射到属性? 我将excel文件内容放入数据表中。 现在,我这样做是为了创建我的对象:
var myClass = new MyClass{
MyProperty = dataRow["Excel Col Name"].ToString()
}
您对我如何实现映射有任何想法吗? 或者也许我的方向不对,我应该使用另一种方法?
我查看了 nuget LinqToExcel,但我正在使用的 excel 文件格式不正确,我无法更改格式。
【问题讨论】:
-
如果列名是唯一改变的,那么按列索引映射属性:
MyProperty = dataRow[0].ToString() -
@MetroSmurf 好点。我知道我在想一些太复杂的事情!谢谢。