.NET 開源匯入匯出庫 Magicodes.IE 2.5釋出

HueiFeng發表於2020-12-08

今天我們釋出了2.5版本,這當然也離不開大家對Magicodes.IE的支援,今天我也是跟往常一樣列舉了該版本一些重要的更新內容。

當然也要說一下,在這個版本中我們設計了全新的LOGO

file

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

支援對內建資料驗證的開啟操作。
file

file

支援對輸入提示的展示操作。

file

示例程式碼如下所示:

    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可以通過去指定某一列資料列,這樣在複雜的列名時結構時,我們也可以直接
輕鬆的應對

file

[ImporterHeader(Name = "年齡", ColumnIndex = 3)]
public int? Age { get; set; }

歡迎掃碼加入微信群

.NET 開源匯入匯出庫 Magicodes.IE 2.5釋出

https://github.com/dotnetcore/Magicodes.IE

相關文章