今天我們發布了2.5版本,這當然也離不開大家對Magicodes.IE
的支持,今天我也是跟往常一樣列舉了該版本一些重要的更新內容。
當然也要說一下,在這個版本中我們設計了全新的LOGO
Excel導出
- Excel導出支持HeaderRowIndex #164
在ExcelExporterAttribute
導出特性類中添加HeaderRowIndex
屬性,方便導出時去指定從第一行開始導出。
- 增加Excel枚舉導出對DescriptionAttribute的支持 #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
對於內置數據驗證的支持可通過IsInterValidation
屬性開啟,並且需要注意的是僅
支持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
導入功能支持ColumnIndex
可以通過去指定某一列數據列,這樣在復雜的列名時結構時,我們也可以直接
輕松的應對
[ImporterHeader(Name = "年齡", ColumnIndex = 3)]
public int? Age { get; set; }
歡迎掃碼加入微信群
