今天我们发布了2.5版本,这当然也离不开大家对Magicodes.IE
的支持,今天我也是跟往常一样列举了该版本一些重要的更新内容。
当然也要说一下,在这个版本中我们设计了全新的LOGO。
Excel导出
Excel导出支持HeaderRowIndex #164
(https://github.com/dotnetcore/Magicodes.IE/issues/164)
在ExcelExporterAttribute
导出特性类中添加HeaderRowIndex
属性,方便导出时去指定从第一行开始导出。
增加Excel枚举导出对DescriptionAttribute的支持 #168
(https://github.com/dotnetcore/Magicodes.IE/issues/168)
在导出枚举类型时起初我们可以通过ValueMapping和导出枚举本身的字符串名称,在现在我们可以通过 DescriptionAttribute、 DisplayAttribute, DisplayNameAttribute 实现Text值导出。
enum Sex
{/// <summary>/// 男/// </summary>[Description("男")]boy = 1,/// <summary>/// 女/// </summary>[Description("女")]girl = 2
}
TableStyle修改为枚举类型
在这之前我们将TableStyle
属性放在了ExporterAttribute
基础特性中,起初我们的TableStyle属性为字符串, 但是带给了我们不必要的麻烦,很难让使用者去查找这些样式名称,所以此处我们将其换成了枚举类型,方便使用者从列表中 进行查找相关样式。
[ExcelExporter(Name = "测试", TableStyle = TableStyles.Light10)]
Excel导入
Excel生成导入模板支持内置数据验证#167
对于内置数据验证的支持可通过I
sInterValidation
属性开启,并且需要注意的是仅支持
MaxLengthAttribute、 MinLengthAttribute、 StringLengthAttribute、 RangeAttribute
支持对内置数据验证的开启操作。
支持对输入提示的展示操作。
示例代码如下所示:
public class GenerateStudentImportSheetDataValidationDto{/// <summary>/// 序号/// </summary>[ImporterHeader(Name = "序号", IsInterValidation = true)][Range(minimum: 0, maximum: 20, ErrorMessage = "序号最大为20")]public long SerialNumber { get; set; }/// <summary>/// 学籍号/// </summary>[ImporterHeader(Name = "学籍号", IsAllowRepeat = false, IsInterValidation = true)][MaxLength(30, ErrorMessage = "学籍号字数超出最大限制,请修改!")]public string StudentCode { get; set; }/// <summary>/// 姓名/// </summary>[ImporterHeader(Name = "姓名")][Required(ErrorMessage = "学生姓名不能为空")][MaxLength(50, ErrorMessage = "名称字数超出最大限制,请修改!")]public string Name { get; set; }/// <summary>/// 年龄/// </summary>[ImporterHeader(Name = "年龄", IsInterValidation = true)][Range(minimum: 18, maximum: 20, ErrorMessage = "年龄范围需要在18-20岁哦")]public int Age { get; set; }/// <summary>/// MinTest/// </summary>[ImporterHeader(Name = "MinTest", IsInterValidation = true)][MinLength(5, ErrorMessage = "最小长度为5哦")]public string MinTest { get; set; }/// <summary>/// 忽略类型/// </summary>[ImporterHeader(Name = "忽略类型", IsInterValidation = true)][Range(minimum: 18, maximum: 20, ErrorMessage = "年龄范围需要在18-20岁哦", ErrorMessageResourceType = typeof(string))]public int IgnoreType { get; set; }[ImporterHeader(Name = "出生日期", IsInterValidation = true, ShowInputMessage = "输入日期")][Range(typeof(DateTime), minimum: "2020-10-20", maximum: "2020-10-24", ErrorMessage = "日期范围超出了哦")]public DateTime Birthday { get; set; }
}
注意:数据范围验证仅支持DateTime和int类型
导入对ColumnIndex的支持#198
(https://github.com/dotnetcore/Magicodes.IE/issues/198)
导入功能支持ColumnIndex
可以通过去指定某一列数据列,这样在复杂的列名时结构时,我们也可以直接轻松的应对。
[ImporterHeader(Name = "年龄", ColumnIndex = 3)]
public int? Age { get; set; }
https://github.com/dotnetcore/Magicodes.IE
扫码入群
Magicodes.IE生态群
转载是一种动力 分享是一种美德
如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文作者:HueiFeng
文档官网:docs.xin-lai.com
QQ群:
编程交流群<85318032>
产品交流群<897857351>