Closed VAllens closed 6 years ago
If you want to control the column order during export, try to specify column index by:
mapper.Map<SampleClass>(0, o =>o.ISO);
mapper.Map<SampleClass>(1, o =>o.EN);
//...
有更好的方式吗? 例如:
mapper.Map<SampleClass>(columnIndex, columnName, Expression<Func<T, object>> propertySelector);
mapper.Map<SampleClass>(columnIndex, columnName, Expression<Func<T, object>> propertySelector, Func<IColumnInfo, object, bool> tryTake = null, Func<IColumnInfo, object, bool> tryPut = null);
我不希望专门为Import
写一个Map
, Export
再写另一个Map
。
如果import和export的时候column顺序都一致, 只写一次map就可以, 如果不同建议写两次.
import
和export
的column
顺序是一致的,但columnName
和propertyName
不一致。
我在MapExtensions
没有找到一个可用的方法。
mapper.Map<SampleClass>(columnIndex, "Categories",
t => t.Category,
(column, target) =>
{
string value = column.CurrentValue.NullableToString();
//枚举值为Key,枚举描述为Value
string key = categories.Where(t => t.Value == value).Select(t => t.Key).FirstOrDefault();
if (key == null)
{
return false;
}
((SampleClass) target).Category = (CareCategory) Enum.Parse(typeof(CareCategory), key);
return true;
},
(column, source) =>
{
column.CurrentValue = ((SampleClass) source).Category.GetDescription();
return true;
});
thanks for your suggestion, will enable user specify both column index and name for export.
Okey, thank you so much. :)
very good
你好,很高兴你使用
CI
持续发布NuGet
包。 现在有个问题: 你现在的Excel
导出是根据类属性顺序导出的,而且是先输出派生类属性列,后输出基类属性列。 能否根据Mapper.Attributes
集合的顺序来导出Excel
?