日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Magicodes.IE 2.0发布

發布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Magicodes.IE 2.0发布 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Magicodes.IE是我們維護的開源的導入導出通用庫,去年年底已加入NCC開源組織。

Github地址:https://github.com/xin-lai/Magicodes.IE

Magicodes.IE不是一蹴而就,而是根據實際需求不斷迭代出來的,而且歷經多次重構。這一次,趁著春節假期,我們重構并發布了Magicodes.IE 2.0。在這里尤其要感謝一位小伙伴,@hueifeng https://github.com/hueifeng,感謝其在春節期間為Magicodes.IE做出的文檔貢獻。

由于個人和團隊精力有限,Magicodes.IE非常迫切地希望能得到大家的幫助和支持,尤其是代碼和文檔貢獻。如有意向,可以提交PR或者和我直接聯系(公眾號或QQ群均可)。

相關Nuget包

主要更新

Magicodes.IE 2.0主要更新如下所示:

  • 完全重構整個導出Excel模塊并且重寫大部分接口

  • 支持列頭篩選器——IExporterHeaderFilter,以便動態更改Excel導出結果

  • public class TestExporterHeaderFilter1 : IExporterHeaderFilter {/// <summary>/// 表頭篩選器(修改名稱)/// </summary>/// <param name="exporterHeaderInfo"></param>/// <returns></returns>public ExporterHeaderInfo Filter(ExporterHeaderInfo exporterHeaderInfo){if (exporterHeaderInfo.DisplayName.Equals("名稱")){exporterHeaderInfo.DisplayName = "name";}return exporterHeaderInfo;}}
  • 支持導入結果篩選器——IImportResultFilter,可用于多語言場景的錯誤標注

public class ImportResultFilterTest : IImportResultFilter {/// <summary>/// 本示例修改數據錯誤驗證結果,可用于多語言等場景/// </summary>/// <typeparam name="T"></typeparam>/// <param name="importResult"></param>/// <returns></returns>public ImportResult<T> Filter<T>(ImportResult<T> importResult) where T : class, new(){var errorRows = new List<int>(){5,6};var items = importResult.RowErrors.Where(p => errorRows.Contains(p.RowIndex)).ToList();for (int i = 0; i < items.Count; i++){for (int j = 0; j < items[i].FieldErrors.Keys.Count; j++){var key = items[i].FieldErrors.Keys.ElementAt(j);var value = items[i].FieldErrors[key];items[i].FieldErrors[key] = value?.Replace("存在數據重復,請檢查!所在行:", "Duplicate data exists, please check! Where:");}}return importResult;} }
  • 支持列篩選器(需實現接口【IImportHeaderFilter】),可用于兼容多語言導入等場景

  • /// <summary> /// 導入列頭篩選器測試 /// 1)測試修改列頭 /// 2)測試修改值映射 /// </summary> public class ImportHeaderFilterTest : IImportHeaderFilter {public List<ImporterHeaderInfo> Filter(List<ImporterHeaderInfo> importerHeaderInfos){foreach (var item in importerHeaderInfos){if (item.PropertyName == "Name"){item.Header.Name = "Student";}else if (item.PropertyName == "Gender"){item.MappingValues = new Dictionary<string, dynamic>(){{"男",0 },{"女",1 }};}}return importerHeaderInfos;} }
  • 導出Excel支持拆分Sheet,僅需設置特性【ExporterAttribute】的【MaxRowNumberOnASheet】的值,為0則不拆分

  • [ExcelExporter(Name = "測試", TableStyle = "Light10", AutoFitAllColumn = true, MaxRowNumberOnASheet = 100)] public class ExportTestDataWithSplitSheet
  • Excel模板導出優化

  • 優化導出性能

    修復數據項為NULL的異常

    修復多個Table渲染以及合并單元格渲染的問題

    • IExporter再添加兩個動態DataTable導出方法,無需定義Dto即可動態導出數據,并且支持表頭篩選器、Sheet拆分

    /// <summary>/// 導出Excel/// </summary>/// <param name="fileName">文件名稱</param>/// <param name="dataItems">數據</param>/// <param name="exporterHeaderFilter">表頭篩選器</param>/// <param name="maxRowNumberOnASheet">一個Sheet最大允許的行數,設置了之后將輸出多個Sheet</param>/// <returns>文件</returns>Task<ExportFileInfo> Export(string fileName, DataTable dataItems, IExporterHeaderFilter exporterHeaderFilter = null, int maxRowNumberOnASheet = 1000000);/// <summary>/// 導出Excel/// </summary>/// <param name="dataItems">數據</param>/// <param name="exporterHeaderFilter">表頭篩選器</param>/// <param name="maxRowNumberOnASheet">一個Sheet最大允許的行數,設置了之后將輸出多個Sheet</param>/// <returns>文件二進制數組</returns>Task<byte[]>?ExportAsByteArray(DataTable?dataItems,?IExporterHeaderFilter?exporterHeaderFilter?=?null,?int?maxRowNumberOnASheet?=?1000000);
  • 支持傳入標注文件路徑,不傳參則默認同目錄”_”后綴保存

  • 修復日期格式默認導出數字的Bug,默認輸出“yyyy-MM-dd”,可以通過設置“[ExporterHeader(DisplayName = “日期2”, Format = “yyyy-MM-dd HH:mm:ss”)]”來修改。

  • 修復沒有定義導出特性會報錯的情形。

  • 修復轉換DataTable時支持為空類型

  • 修復導出結果無法篩選的問題

  • 完善相關單元測試

  • 完善部分文檔并完成:

    • 基礎教程之導出Excel

      https://github.com/dotnetcore/Magicodes.IE/blob/master/docs/2.%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%E4%B9%8B%E5%AF%BC%E5%87%BAExcel.md

    • 基礎教程之導出Pdf收據

      https://github.com/dotnetcore/Magicodes.IE/blob/master/docs/3.%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%E4%B9%8B%E5%AF%BC%E5%87%BAPdf%E6%94%B6%E6%8D%AE.md


2.1版本預覽

2.1規劃如下,由于精力有限,具體時間待定:

  • Excel支持圖片導入導出

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

  • Pdf導出支持.NET461

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

  • CSV導入導出支持

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


最后

由于個人和團隊精力有限,Magicodes.IE非常迫切地希望能得到大家的幫助和支持,尤其是代碼和文檔貢獻。如有意向,可以提交PR或者和我直接聯系(公眾號或QQ群均可)。

轉載是一種動力 分享是一種美德

如果喜歡作者的文章,請關注【麥扣聊技術】訂閱號以便第一時間獲得最新內容。本文版權歸作者和湖南心萊信息科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

文檔官網:docs.xin-lai.com

QQ群:

編程交流群<85318032>?

產品交流群<897857351>

總結

以上是生活随笔為你收集整理的Magicodes.IE 2.0发布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 密臀av在线| 国产高清视频 | h网站在线 | 久久人人妻人人人人妻性色av | 中文字幕精品一区二区三区精品 | 亚洲精品图区 | 欧美性猛交一区二区三区精品 | 国产三级在线 | 日本久久不卡 | 国产一区二区免费在线观看 | 婷婷丁香六月 | 国产电影免费观看高清完整版视频 | 性欧美ⅴideo另类hd | 91欧美在线| 琪琪色在线观看 | 亚洲逼院 | 久操福利在线 | 91精品免费在线 | 色之久久综合 | 亚洲精品激情视频 | 国产日韩精品suv | 亚洲+小说+欧美+激情+另类 | 风韵少妇性饥渴推油按摩视频 | 国产综合精品久久久久成人影 | 欧美少妇18p| 日韩天堂av| 亚洲调教欧美在线 | 亚洲欧美大片 | 人妻无码一区二区三区四区 | 超碰人人擦 | 午夜精品久久久久久久久久久久久 | 亚洲精品97 | 午夜剧场免费在线观看 | 婷婷五月精品中文字幕 | 亚洲一区二三区 | 九草av| 午夜视频久久 | 青青99 | 亚洲天堂2021av| 国产精品视频a | 被扒开腿一边憋尿一边惩罚 | 国产欧美日韩综合精品一区二区三区 | 黄色大片日本 | 少妇天堂网 | www久久久久久 | 亚洲欧洲日韩国产 | 黄色天堂网站 | 国产99久久 | 亚洲一二三四区 | 久久成人国产精品入口 | 日韩精品无码一区二区三区久久久 | 亚洲va在线观看 | 伊人久久大香网 | 国产欧美视频一区二区三区 | 亚洲а∨天堂久久精品2021 | 色综合91| 日本天堂在线视频 | 日韩激情视频在线 | 日韩美女少妇 | aa视频网站 | 俄罗斯毛片 | 91国模 | 最新中文字幕在线观看视频 | 亚洲色图 美腿丝袜 | 性感美女高潮 | 超碰pron | 操伊人| 狠狠干2022 | 精品在线免费观看 | 亚洲天堂网在线观看 | 青草视频在线观看免费 | 蜜桃av免费在线观看 | 日韩av男人的天堂 | 国产精品国产三级国产aⅴ9色 | www.久久久久 | 国产你懂| 激情网五月天 | av嫩草| 国产亚洲精品码 | 久久我不卡 | 国产xxxx在线 | 一区二区国产在线观看 | 成人在线观看视频网站 | 男人的天堂你懂的 | 久久亚洲国产成人精品性色 | 影音先锋久久 | 精品少妇v888av | 人人干狠狠干 | 免费黄网站在线 | 色图av| 天堂网ww | 影视先锋av资源 | 巨大黑人极品videos精品 | 亚洲精品国产精品国自产观看浪潮 | 亚洲天堂欧美在线 | 中文字幕 自拍偷拍 | 天天综合网久久综合网 | 香蕉视频性 | 啦啦啦免费高清视频在线观看 |