1. 程式人生 > >Magicodes.IE 2.4版本釋出

Magicodes.IE 2.4版本釋出

今天我們釋出了2.4版本,這離不開大家對`Magicodes.IE`的支援,我們也對大家的意見以及需求不斷的進行更新迭代,目前我們的釋出頻率平均在一週一個`beta`版本,一個月一個正式版本的更新,我們歡迎更多的開發者加入進來,歡迎大家來提issue以及PR。 專案地址:https://github.com/dotnetcore/Magicodes.IE。 按照慣例,我們開啟了2.5版本的討論,具體見:[2.5 milestone discussion(2.5里程碑討論)](https://github.com/dotnetcore/Magicodes.IE/issues/158),歡迎大家前來討論。 ![總體設計](https://img2020.cnblogs.com/blog/70544/202010/70544-20201009174129531-1848205621.png) 本次釋出的主要內容如下所示: - Excel匯出支援對Enum的ValueMapping設定 在對Enum的匯出中支援匯出`text`,可以通過`ValueMapping`對值的一個對映 ``` [ValueMapping(text: "小微客戶", 0)] [ValueMapping(text: "一級", 1)] ``` - Excel匯出支援對bool型別的ValueMapping設定 支援對bool型別的值對映 ``` [ValueMapping(text: "yes", true)] [ValueMapping(text: "no", false)] ``` - 篩選器支援依賴注入 篩選器主要是為了滿足大家能夠在匯入匯出時支援動態處理,比如值對映等等。但是通過特性指定篩選器的話,那麼如何支援依賴注入呢?不要慌,針對這個場景,我們也有考慮 **在ASP.NET Core的啟動類(StartUp)註冊容器** ```csharp public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { AppDependencyResolver.Init(app.ApplicationServices); //添加註入關係 services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); } ``` 1. 注入的篩選器型別的優先順序高於特性指定的篩選器型別,也就是當兩者並存時,優先會使用注入的篩選器 2. 注入的篩選器是全域性的,當注入多種型別的篩選器時,均會執行,接下來我們還會支援更多細節控制 3. 如果某個邏輯需要禁用所有篩選器,請參考下面部分 4. 此功能需要2.4.0-beta2或以上版本才支援 示例如下所示: ``` public class TestExporterHeaderFilter2 : IExporterHeaderFilter { /// /// 表頭篩選器(修改忽略列) ///
/// /// public ExporterHeaderInfo Filter(ExporterHeaderInfo exporterHeaderInfo) { if (exporterHeaderInfo.ExporterHeaderAttribute.IsIgnore) { exporterHeaderInfo.ExporterHeaderAttribute.IsIgnore = false; } return exporterHeaderInfo; } } ``` - 使用IsDisableAllFilter屬性禁用所有的篩選器 如果某段匯入匯出需要禁用所有的篩選器,我們該如何處理?僅需將IsDisableAllFilter設定為true即可。匯入匯出特性均已支援。 - 匯出新增AutoFitMaxRows,超過指定行數則不啟用AutoFit 新增AutoFit Rows限制配置,支援超過指定行則不啟用AutoFit。 ``` [ExcelExporter(Name = "通用匯出測試", AutoFitMaxRows = 5000)] ``` - 支援單元格匯出寬度設定 ``` [ExporterHeader(Width = 100)] public DateTime Time3 { get; set; } ``` 感謝大家對Magicodes.IE的支援。關於更多釋出資訊大家可以參閱: https://github.com/dotnetcore/Magicodes.IE/blob/master/RELEASE.md