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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Magicodes.IE 2.2里程碑需求和建议征集

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

簡介

Magicodes.IE是導入導出通用庫,支持Dto導入導出以及動態導出,支持Excel、Word、Pdf、Csv和Html。已加入NCC開源組織。

Magicodes.IE 2.0發布

  • Github:

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

  • 碼云(手動同步,不維護):

https://gitee.com/magicodes/Magicodes.IE

當前狀態如下所示:


Magicodes.IE是一個長期的項目,為了更好的支持和維護此項目,我們成立了Magicodes.IE開源管理委員會,委員會成員擁有相關里程碑功能開發的投票權。我們非常期待也非常需要您的加入。

當前里程碑狀態如下所示:

為了更好的根據實際功能來迭代,從2.2的里程碑規劃開始,我們將結合社區的建議和意見來進行迭代,您可以點此鏈接來提交您的意見和建議:

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


Magicodes.IE主體功能介紹

  • 需配合相關導入導出的DTO模型使用,支持通過DTO以及相關特性控制導入導出。配置特性即可控制相關邏輯和顯示結果,無需修改邏輯代碼;?

  • 支持各種篩選器,以便支持多語言、動態控制列展示等場景,具體使用見單元測試:

    • 導入列頭篩選器(可動態指定導入列、導入的值映射關系)

    • 導出列頭篩選器(可動態控制導出列,支持動態導出(DataTable))

    • 導入結果篩選器(可修改標注文件)

  • 導出支持文本自定義過濾或處理;

  • 導入支持中間空行自動跳過;

  • 導入支持自動根據 DTO 生成導入模板,針對必填項將自動標注;?

  • 導入支持數據下拉選擇,目前僅支持枚舉類型;

  • 導入數據支持前后空格以及中間空格處理,允許指定列進行設置;

  • 導入支持模板自動檢查,數據自動校驗,異常統一處理,并提供統一的錯誤封裝,包含異常、模板錯誤和行數據錯誤;?

  • 支持導入表頭位置設置,默認為1;

  • 支持導入列亂序,無需按順序一一對應;

  • 支持導入指定列索引,默認自動識別;

  • 導出Excel支持拆分Sheet,僅需設置特性【ExporterAttribute】的【MaxRowNumberOnASheet】的值,為0則不拆分。具體見單元測試;

  • 支持將導入Excel進行錯誤標注;??

  • 導入支持截止列設置,如未設置則默認遇到空格截止;

  • 支持導出HTML、Word、Pdf,支持自定義導出模板;

    • 導出HTML?

    • 導出Word?

    • 導出Pdf,支持設置,具體見更新日志?

    • 導出收據?

  • 導入支持重復驗證;?

  • 支持單個數據模板導出,常用于導出收據、憑據等業務

  • 支持動態列導出(基于DataTable),并且超過100W將自動拆分Sheet。(感謝張善友老師(https://github.com/xin-lai/Magicodes.IE/pull/8 ))

  • 支持值映射,支持通過“ValueMappingAttribute”特性設置值映射關系。用于生成導入模板的數據驗證約束以及進行數據轉換。

/// <summary>/// 性別/// </summary>[ImporterHeader(Name = "性別")][Required(ErrorMessage = "性別不能為空")][ValueMapping(text: "男", 0)][ValueMapping(text: "女", 1)]public Genders Gender { get; set; }
  • 支持枚舉和Bool類型的導入數據驗證項的生成,以及相關數據轉換

    • 枚舉默認情況下會自動獲取枚舉的描述、顯示名、名稱和值生成數據項

      /// <summary>/// 學生狀態 正常、流失、休學、勤工儉學、頂崗實習、畢業、參軍/// </summary>public enum StudentStatus{/// <summary>/// 正常/// </summary>[Display(Name = "正常")]Normal = 0,/// <summary>/// 流失/// </summary>[Description("流水")]PupilsAway = 1,/// <summary>/// 休學/// </summary>[Display(Name = "休學")]Suspension = 2,/// <summary>/// 勤工儉學/// </summary>[Display(Name = "勤工儉學")]WorkStudy = 3,/// <summary>/// 頂崗實習/// </summary>[Display(Name = "頂崗實習")]PostPractice = 4,/// <summary>/// 畢業/// </summary>[Display(Name = "畢業")]Graduation = 5,/// <summary>/// 參軍/// </summary>[Display(Name = "參軍")]JoinTheArmy = 6,}

    • bool類型默認會生成“是”和“否”的數據項

    • 如果已設置自定義值映射,則不會生成默認選項

  • 支持excel多Sheet導入

  • 支持Excel模板導出?

  • 支持Excel導入模板生成標注?

更新歷史

2019.03.06

  • 【Nuget】版本更新到2.1.3

  • 【Excel導入】修復GUID類型的問題。問題見(https://github.com/dotnetcore/Magicodes.IE/issues/44)。

2019.02.25

  • 【Nuget】版本更新到2.1.2

  • 【導入導出】已支持CSV

  • 【文檔】完善Pdf導出文檔

2019.02.24

  • 【Nuget】版本更新到2.1.1-beta

  • 【導入】Excel導入支持導入標注,僅需設置ExcelImporterAttribute的ImportDescription屬性,即會在頂部生成Excel導入說明

  • 【重構】添加兩個接口

    • IExcelExporter:繼承自IExporter, IExportFileByTemplate,Excel特有的API將在此補充

    • IExcelImporter:繼承自IImporter,Excel特有的API在此補充,例如“ImportMultipleSheet”、“ImportSameSheets”

  • 【重構】增加實例依賴注入

  • 【構建】完成代碼覆蓋率的DevOps的配置

2019.02.14

  • 【Nuget】版本更新到2.1.0

  • 【導出】PDF導出支持.NET 4.6.1,具體見單元測試

2019.02.13

  • 【Nuget】版本更新到2.0.2

  • 【導入】修復單列導入的Bug,單元測試“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/issues/35)。

  • 【導出】修復導出HTML、Pdf、Word時,模板在某些情況下編譯報錯的問題。

  • 【導入】重寫空行檢查。

2019.02.11

  • 【Nuget】版本更新到2.0.0

  • 【導出】Excel模板導出修復多個Table渲染以及合并單元格渲染的問題,具體見單元測試“ExportByTemplate_Test1”。問題見(https://github.com/dotnetcore/Magicodes.IE/issues/34)。

  • 【導出】完善模板導出的單元測試,針對導出結果添加渲染檢查,確保所有單元格均已渲染。

2019.02.05

  • 【Nuget】版本更新到2.0.0-beta4

  • 【導入】支持列篩選器(需實現接口【IImportHeaderFilter】),可用于兼容多語言導入等場景,具體見單元測試【ImportHeaderFilter_Test】

  • 【導入】支持傳入標注文件路徑,不傳參則默認同目錄"_"后綴保存

  • 【導入】完善單元測試【ImportResultFilter_Test】

  • 【其他】修改【ValueMappingAttribute】的命名空間為Magicodes.ExporterAndImporter.Core

2019.02.04

  • 【Nuget】版本更新到2.0.0-beta2

  • 【導入】支持導入結果篩選器——IImportResultFilter,可用于多語言場景的錯誤標注,具體使用見單元測試【ImportResultFilter_Test】

  • 【其他】修改IExporterHeaderFilter的命名空間為Magicodes.ExporterAndImporter.Core.Filters

2019.01.18

  • 【Nuget】版本更新到2.0.0-beta1

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

  • 【導出】支持列頭篩選器——IExporterHeaderFilter,具體使用見單元測試

  • 【導出】修復轉換DataTable時支持為空類型

  • 【導出】導出Excel支持拆分Sheet,僅需設置特性【ExporterAttribute】的【MaxRowNumberOnASheet】的值,為0則不拆分。具體見單元測試

  • 【導出】修復導出結果無法篩選的問題。目前導出即為數據表

  • 【導出】添加擴展方法ToExcelExportFileInfo

  • 【導出】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);

2019.01.16

  • 【Nuget】版本更新到1.4.25

  • 【導出】修復沒有定義導出特性會報錯的情形,具體見單元測試“ExportTestDataWithoutExcelExporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/issues/21)。

2019.01.16

  • 【Nuget】版本更新到1.4.24

  • 【導出】修復日期格式默認導出數字的Bug,默認輸出“yyyy-MM-dd”,可以通過設置“[ExporterHeader(DisplayName = "日期2", Format = "yyyy-MM-dd HH:mm:ss")]”來修改。問題見(https://github.com/dotnetcore/Magicodes.IE/issues/22)。

2019.01.14

  • 【Nuget】版本更新到1.4.21

  • 【導出】Excel模板導出修復數據項為Null報錯的Bug。

2019.01.09

  • 【Nuget】版本更新到1.4.20

  • 【導出】Excel模板導出性能優化。5000條表格數據1秒內完成,具體見單元測試ExportByTemplate_Large_Test。

2019.01.08

  • 【Nuget】版本更新到1.4.18

  • 【導入】支持導入最大數量限制

    • ImporterAttribute支持MaxCount設置,默認為50000

    • 完成相關單元測試

2019.01.07

  • 【Nuget】版本更新到1.4.17

  • 【重構】重構IExportFileByTemplate中的ExportByTemplate,將參數htmlTemplate改為template。以便支持Excel模板導出。

  • 【導出】支持Excel模板導出并填寫相關單元測試,如何使用見教程《Excel模板導出之導出教材訂購表》

    • 支持單元格單個綁定

    • 支持列表

2019.12.17

  • 【Nuget】版本更新到1.4.16

  • 【導入】Excel導入支持多sheet導入,感謝tanyongzheng(https://github.com/dotnetcore/Magicodes.IE/pull/18)

2019.12.10

  • 【Nuget】版本更新到1.4.15

  • 【測試】單元測試添加多框架版本支持 (https://docs.xin-lai.com/2019/12/10/%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/Magicodes.IE%E7%BC%96%E5%86%99%E5%A4%9A%E6%A1%86%E6%9E%B6%E7%89%88%E6%9C%AC%E6%94%AF%E6%8C%81%E5%92%8C%E6%89%A7%E8%A1%8C%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/)

  • 【修復】修復部分.NET Framework 461下的問題

2019.12.06

  • 【Nuget】版本更新到1.4.14

  • 【重構】大量重構

    • 移除部分未使用的代碼

    • 將TemplateFileInfo重命名為ExportFileInfo

    • 將IExporterByTemplate接口拆分為4個接口:IExportListFileByTemplate, IExportListStringByTemplate, IExportStringByTemplate, IExportFileByTemplate,并修改相關實現

    • 重構ImportHelper部分代碼

  • 【導入】修復導入Excel時表頭設置的問題,已對此編寫單元測試,見【產品信息導入】

  • 【完善】編寫ExportAsByteArray對于DataTable的單元測試,ExportWordFileByTemplate_Test

2019.11.25

  • 【Nuget】版本更新到1.4.13

  • 【導出】Pdf導出支持特性配置,詳見單元測試【導出豎向排版收據】。目前主要支持以下設置:

    • Orientation:排版方向(橫排、豎排)

    • PaperKind:紙張類型,默認A4

    • IsEnablePagesCount:是否啟用分頁數

    • Encoding:編碼設置,默認UTF8

    • IsWriteHtml:是否輸出HTML模板,如果啟用,則會輸出.html后綴的對應的HTML文件,方便調錯

    • HeaderSettings:頭部設置,通常可以設置頭部的分頁內容和信息

    • FooterSettings:底部設置

2019.11.24

  • 【Nuget】版本更新到1.4.12

  • 【導出】導出動態類支持超過100W數據時自動拆分Sheet(具體見PR:https://github.com/xin-lai/Magicodes.IE/pull/14)

2019.11.20

  • 【Nuget】版本更新到1.4.11

  • 【導出】修復Datatable列的順序和DTO的順序不一致,導致數據放錯列(具體見PR:https://github.com/xin-lai/Magicodes.IE/pull/13)

2019.11.16

  • 【Nuget】版本更新到1.4.10

  • 【導出】修復Pdf導出在多線程下的問題

2019.11.13

  • 【Nuget】版本更新到1.4.5

  • 【導出】修復導出Pdf在某些情況下可能會導致內存報錯的問題

  • 【導出】添加批量導出收據單元測試示例,并添加大量數據樣本進行測試

2019.11.5

  • 【Nuget】版本更新到1.4.4

  • 【導入】修復枚舉類型的問題,并編寫單元測試

  • 【導入】增加值映射,支持通過“ValueMappingAttribute”特性設置值映射關系。用于生成導入模板的數據驗證約束以及進行數據轉換。

  • 【導入】優化枚舉和Bool類型的導入數據驗證項的生成,以便于模板生成和數據轉換

    • 枚舉默認情況下會自動獲取枚舉的描述、顯示名、名稱和值生成數據項

    • bool類型默認會生成“是”和“否”的數據項

    • 如果已設置自定義值映射,則不會生成默認選項

  • 【導入】支持枚舉可為空類型

2019.10.30

  • 【Nuget】版本更新到1.4.0

  • 【導出】Excel導出支持動態列導出(基于DataTable),感謝張善友(https://github.com/xin-lai/Magicodes.IE/pull/8?)

2019.10.22

  • 【Nuget】版本更新到1.3.7

  • 【導入】修復忽略列的驗證問題

  • 【導入】修正驗證錯誤信息,一行僅允許存在一條數據

  • 【導入】修復忽略列在某些情況下可能引發的異常

  • 【導入】添加存在忽略列的導入情形下的單元測試

2019.10.21

  • 【Nuget】版本更新到1.3.4

  • 【導入】支持設置忽略列,以便于在Dto定義數據列做處理或映射

2019.10.18

  • 【優化】優化.NET標準庫2.1下集合轉DataTable的性能

  • 【重構】多處IList修改為ICollection

  • 【完善】補充部分單元測試

2019.10.12

  • 【重構】重構HTML、PDF導出等邏輯,并修改IExporterByTemplate為:

    • Task ExportListByTemplate(IList dataItems, string htmlTemplate = null) where T : class;

    • Task ExportByTemplate(T data, string htmlTemplate = null) where T : class;

  • 【示例】添加收據導出的單元測試示例

2019.9.28

  • 【導出】修改默認的導出HTML、Word、Pdf模板

  • 【導入】添加截斷行的單元測試,以測試中間空格和結尾空格

  • 【導入】將【數據錯誤檢測】和【導入】單元測試的Dto分開,確保全部單元測試通過

  • 【文檔】更新文檔

2019.9.26

  • 【導出】支持導出Word、Pdf、HTML,支持自定義導出模板

  • 【導出】添加相關導出的單元測試

  • 【導入】支持重復驗證,需設置ImporterHeader特性的IsAllowRepeat為false

2019.9.19

  • 【導入】支持截止列設置,如未設置則默認遇到空格截止

  • 【導入】導入支持通過特性設置Sheet名稱

2019.9.18

  • 【導入】重構導入模塊

  • 【導入】統一導入錯誤消息

    • Exception :導入異常信息

    • RowErrors :數據錯誤信息

    • TemplateErrors :模板錯誤信息,支持錯誤分級

    • HasError : 是否存在錯誤(僅當出現異常并且錯誤等級為Error時返回true)

  • 【導入】基礎類型必填自動識別,比如int、double等不可為空類型自動識別,無需額外設置Required

  • 【導入】修改Excel模板的Sheet名稱

  • 【導入】支持導入表頭位置設置,默認為1

  • 【導入】支持列亂序(導入模板的列序號不再需要固定)

  • 【導入】支持列索引設置

  • 【導入】支持將導入的Excel進行錯誤標注,支持多個錯誤

  • 【導入】加強對基礎類型和可為空類型的支持

  • 【EPPlus】由于EPPlus.Core已經不維護,將EPPlus的包從EPPlus.Core改為EPPlus

2019.9.11

  • 【導入】導入支持自動去除前后空格,默認啟用,可以針對列進行關閉,具體見AutoTrim設置

  • 【導入】導入Dto的字段允許不設置ImporterHeader,支持通過DisplayAttribute特性獲取列名

  • 【導入】導入的Excel移除對Sheet名稱的約束,默認獲取第一個Sheet

  • 【導入】導入增加對中間空格的處理支持,需設置FixAllSpace

  • 【導入】導入完善對日期類型的支持

  • 【導入】完善導入的單元測試

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

作者:magiccodes

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

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

QQ群:

編程交流群<85318032>?

產品交流群<897857351>

總結

以上是生活随笔為你收集整理的Magicodes.IE 2.2里程碑需求和建议征集的全部內容,希望文章能夠幫你解決所遇到的問題。

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