Magicodes.IE 2.7.1發布

433ca6403bd74ba0e8c500f10afc5e3f.jpeg

2.7.1

2022.12.01

  • Magicodes.IE.EPPlus默認添加SkiaSharp.NativeAssets.Linux.NoDependencies包,以便于在Linux環境下使用

  • 導入驗證支持將錯誤數據通過Stream的方式返回,感謝sampsonye (見pr#466)

2.7.0

2022.11.07

  • 添加SkiaSharp

  • 移除SixLabors.Fonts

  • 感謝linch90的大力支持(具體見pr#462)

  • 部分方法改為虛方法

2.7.0-beta

2022.10.27

  • 使用SixLabors.ImageSharp替代System.Drawing,感謝linch90 (見pr#454)

2.6.9

2022.10.26

  • fix: 動態數據源導出到多個sheet的問題 (見#449)

2.6.8

2022.10.18

  • Excel模板導出添加API,以支持通過文件流模板:Task<byte[]> ExportBytesByTemplate(T data, Stream templateStream)

2.6.7

2022.10.12

  • ExporterHeaderFilter支持修改列索引,以支持動態排序,需設置ExporterHeaderAttribute.ColumnIndex屬性(注意不應修改Index屬性),值范圍為0~10000。設置錯誤會自動調整到相近的邊界值。

  • 提供ExporterHeadersFilter篩選器,以支持批量修改列頭。

  • 重構、優化列排序代碼。

2.6.5-beta1

2022.07.17

  • 【修復】如果為動態類型導出,如datatable/dynamic/proxy等,會將原始數據轉成字符串。

  • fix: 修復沒有正確釋放Graphics對象的問題 (見PR#401)

  • feat(module: excel): Export of the byte type Enum value is allowed (見PR#367)

  • feat(module: excel): The export can be of Nullable Enum type (見PR#398)

  • fix(module: Excel): Excel ParseData

2.6.4

2022.04.17

  • 優化了ColumnIndex在生成模板時的實現,增加了ColumnIndex的單測(見PR#385)。

  • 添加了NPOI的獨立擴展包——Magicodes.IE.Excel.NPOI,以便于后續給用戶提供更多的支持。目前僅提供了 SaveToExcelWithXSSFWorkbook 擴展方法。

  • 修復RequiredIfAttribute的Bug。

  • 修復導出JPG圖片在Linux環境下可能引起的無限循環的問題(見PR#396)。

  • Excel圖片導入時,圖片列支持為空。

  • 更新CsvHelper到最新版本,并修改相關代碼。

2.6.3

2022.03.06

  • 完善篩選器注冊機制,在指定了特性ImportHeaderFilter、ExporterHeaderFilter等值后,篩選器將匹配對于的類型(見PR#384),如不指定則作為全局篩選器。如下述代碼,注入了多個同類型的篩選器,通過指定了ImportHeaderFilter限制了此Dto僅使用ImportHeaderFilterB:

builder.Services.AddTransient<IImportHeaderFilter, ImportHeaderFilterA>();builder.Services.AddTransient<IImportHeaderFilter, ImportHeaderFilterB>();builder.Services.AddTransient<IImportHeaderFilter, ImportHeaderFilterC>();[ExcelImporter(ImportHeaderFilter = typeof(ImportHeaderFilterB))]public class ImportExcelTemplateDto{[ImporterHeader(Name = "TypeName")]public string? Name { get; set; }}

2.6.2

2022.03.02

  • Excel導入時增加回調函數,方便增加自定義驗證(見PR#369):

[Fact(DisplayName = "導入結果回調函數測試")]public async Task ImportResultCallBack_Test(){var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "繳費流水導入模板.xlsx");var import = await Importer.Import<ImportPaymentLogDto>(filePath, (importResult) =>{int rowNum = 2;//首行數據對應Excel中的行號foreach (var importPaymentLogDto in importResult.Data){if (importPaymentLogDto.Amount > 5000){var dataRowError = new DataRowErrorInfo();dataRowError.RowIndex = rowNum;dataRowError.FieldErrors.Add("Amount", "金額不能大于5000");importResult.RowErrors.Add(dataRowError);}rowNum++;}return importResult;});import.ShouldNotBeNull();import.HasError.ShouldBeTrue();import.RowErrors.ShouldContain(p => p.RowIndex == 3 && p.FieldErrors.ContainsKey("金額不能大于5000"));import.Exception.ShouldBeNull();import.Data.Count.ShouldBe(20);}
  • 優化獲取DisplayName的邏輯(見PR#372)

  • 導出CSV支持ColumnIndex(見PR#381)

  • 優化Pdf導出邏輯,統一各平臺導出代碼

2.6.1

  • 修復內存未及時回收

2.6.0

2021.11.29

  • 添加兩個動態驗證特性(見PR#319 by Afonsof91):

    public class DynamicStringLengthImportDto
    {[ImporterHeader(Name = "名稱")][Required(ErrorMessage = "名稱不能為空")][DynamicStringLength(typeof(DynamicStringLengthImportDtoConsts), nameof(DynamicStringLengthImportDtoConsts.MaxNameLength), ErrorMessage = "名稱字數不能超過{1}")]public string Name { get; set; }
    }public static class DynamicStringLengthImportDtoConsts
    {public static int MaxNameLength { get; set; } = 3;
    }
    public class RequiredIfAttributeImportDto
    {[ImporterHeader(Name = "名稱是否必填")][Required(ErrorMessage = "名稱是否必填不能為空")][ValueMapping("是", true)][ValueMapping("否", false)]public bool IsNameRequired { get; set; }[ImporterHeader(Name = "名稱")][RequiredIf("IsNameRequired", "True", ErrorMessage = "名稱不能為空")][MaxLength(10, ErrorMessage = "名稱字數超出最大值:10")]public string Name { get; set; }
    }
    • 添加特性RequiredIfAttribute,以支持動態開啟必填驗證。使用參考:

    • 添加特性DynamicStringLengthAttribute,以便支持動態配置字符串長度驗證。使用參考:

  • CSV添加對分隔符的配置,具體見PR#319 by Afonsof91

  • Excel導入添加對TimeSpan類型的支持,使用參考TimeSpan_Test

  • 初步添加對.NET6的適配

2.5.6.3

2021.10.23

  • 導出日期格式化支持DateTimeOffset類型,具體見PR#349,感謝YaChengMu

  • 修改Magicodes.IE.EPPlus的包依賴PR#351

2.5.6.2

2021.10.13

  • 支持自定義列字體顏色,具體見PR#342,感謝xiangxiren

  • 修復日期格式化的問題,具體見PR#344,感謝ccccccmd

2.5.6.1

2021.10.06

  • 修復?#337,bool?類型導出的映射問題

2.5.6.0

2021.10.05

  • 合并Magicodes.EPPlus到Magicodes.IE,修復所有單元測試并修復部分Bug

  • 對EPPlus進行了部分性能優化(比如使用高性能內存流代替MemoryStream)和功能加強

2.5.5.4

2021.09.02

  • 修復可為空枚舉導入時的驗證問題#322。

2.5.5.3

2021.08.27

  • 修復Append方式導出多個sheet時,發生“Tablename is not unique”錯誤,具體見#299。

2.5.5.2

2021.08.24

  • 添加對Abp模塊的包裝,具體見#318。

  • ?Magicodes.IE.Excel.Abp(MagicodesIEExcelModule

      • ?注冊IExcelExporter、IExcelImporter、IExportFileByTemplate

  • ?Magicodes.IE.Csv.Abp(MagicodesIECsvModule

      • ?注冊ICsvExporter、ICsvImporter

  • ?Magicodes.IE.Html.Abp(MagicodesIEHtmlModule

      • ?注冊IHtmlExporter

  • ?Magicodes.IE.Pdf.Abp(MagicodesIEPdfModule

      • ?注冊IPdfExporter

  • ?Magicodes.IE.Word.Abp(MagicodesIEWordModule

      • ?注冊IWordExporter

如何使用?

  • 添加包

<PackageReference Include="Magicodes.IE.Excel.Abp" Version="2.5.5.2" /><PackageReference Include="Magicodes.IE.Pdf.Abp" Version="2.5.5.2" />
  • 添加模塊依賴

[DependsOn(typeof(MagicodesIEExcelModule),typeof(MagicodesIEPdfModule))]
  • 通過構造函數或者其他方式注入IExcelExporter等對象,然后直接使用

2.5.5.1

2021.08.07

  • 為了簡化ASP.NET Core下的Excel導出,對Excel導出進行了進一步的封裝

  • 添加Magicodes.IE.Excel.AspNetCore工程,添加XlsxFileResult的Action Result,支持泛型集合、Bytes數組、Steam直接導出

  • 修改部分命名和命名空間

2.5.4.9

2021.07.23

  • 修復Excel合并行導入在存在空的合并單元格時可能的數據讀取錯誤#305

2.5.4.8

2021.07.15

  • Magicodes.EPPlus回退到4.6.6,以修復格式錯亂的問題

  • 修復Excel僅導出錯誤數據時的Bug#302

  • 完善多語言#298,以及完善單元測試

2.5.4.6

2021.07.04

  • 模板導出支持一行多個表格#296

2.5.4.5

2021.06.29

  • 合并PR#295,完善模板導出類型定義的問題

2.5.4.4

2021.06.25

  • Fix only first [ColumnIndex] is valid exception#289

2.5.4.3

2021.06.18

  • Update ImportTestColumnIndex_Test

  • Magicodes.EPPlus was upgraded to 4.6.7#285

2.5.4.2

2021.06.05

  • Fix ImporterHeader->ColumnIndex

  • Utilize RecyclableMemoryStream instead of "new MemoryStream" all over#282

2.5.4.1

2021.06.05

  • EXCEL模板導出支持XOffset和YOffset#280

  • EXCEL修復ValueMapping

  • Core工程多語言配置

  • EXCEL優化時間導出

2.5.4.0

2021.06.01

  • EXCEL支持自動換行屬性#278

  • EXCEL支持隱藏列屬性#273

  • EXCEL優化時間優化

2.5.3.9

2021.05.26

  • 修復ValueMappingAttribute#272

2.5.3.8

2021.05.10

  • Excel模板導出功能,將單行復制改為多行復制

  • PDF導出內存優化

2.5.3.7

2021.04.23

  • 修復導入模板生成,格式錯誤#261 例如:

2.5.3.6

2021.04.18

  • 支持對導入模板生成,預設值單元格格式#253 例如:

[ImporterHeader(Name = "序號", Format ="@")]
  • 單元格圖片導出支持偏移設置#250?例如:

**YOffset**:垂直偏移(可進行移動圖片)
**XOffset**:水平偏移(可進行移動圖片)
  • 支持多sheet導入SheetIndex的支持#254 例如:

[ExcelImporter(SheetIndex = 2)]

2.5.3.5

2021.04.13

  • Excel導入支持列頭忽略大小寫導入(全局配置:IsIgnoreColumnCase)

2.5.3.4

2021.04.06

  • Excel導入修復枚舉值不在范圍時的錯誤提示

2.5.3.3

2021.04.03

  • Excel導入邏輯移除5萬行的限制,默認不限制導入數量

2.5.3.2

2021.03.30

  • Excel修復OutputBussinessErrorData擴展方法

  • 多Sheet導入對Stream的支持

2.5.3.1

2021.03.12

  • Excel模板導出支持使用Dictionary、ExpandoObject完成動態導出

  • 優化模板導出邏輯

2.5.3

2021.03.08

  • Excel模板導出支持使用JSON對象完成動態導出?#I398DI

2.5.2

2021.03.05

  • Excel導入支持合并行數據?#239

2.5.1.8

2021.02.23

  • Input string was not in a correct format.#241

  • 使用Stream方式導入xlsx,rowErrors里的rowIndex位置不對#236

2.5.1.7

2021.02.20

  • Excel支持Base64導出?#219

  • 修復?#214

2.5.1.6

2021.01.31

  • 部分重構模板導出

  • Excel模板導出語法解析加強?#211

  • 修復當表格下面存在變量時,無法渲染的Bug

2.5.1.5

2021.01.29

  • 移除模板導出時的控制臺日志輸出

2.5.1.4

2021.01.09

  • 修復Excel導出列頭索引與內容排序不一致問題及單測?#226

2.5.1.3

2021.01.02

  • Add PDF support for paper size

  • Add PDF support for margins?#223

2.5.1

2020.12.21

  • 導出支持使用ColumnIndex指定導出順序,以導出時在某些情況下順序不一致的問題(Export supports the use of ColumnIndex to specify the export order, so that the order is inconsistent in some cases when exporting)?#179

2.5.0

2020.12.03

  • Excel導出支持HeaderRowIndex?#164

  • 增加Excel枚舉導出對DescriptionAttribute的支持?#168

  • Excel生成導入模板支持內置數據驗證#167

    • 支持MaxLengthAttribute、MinLengthAttribute、StringLengthAttribute、RangeAttribute

    • 支持數據驗證

    • 支持輸入提示 To fix The Mapping Values of The total length of a Data Validation list always exceed 255 characters (# 196) (https://github.com/dotnetcore/Magicodes.IE/issues/196)

  • Excel export List data type errors, and formatting issues.#191?[193] (https://github.com/dotnetcore/Magicodes.IE/issues/193)

  • 導入Excel對Enum類型匹配值映射時,忽略值前后空格

  • fix MappingValues The total length of a DataValidation list cannot exceed 255 characters?#196

  • Excel導出List數據類型存在錯誤,以及格式化問題。?#191 #193

  • The ColumnIndex property does not appear to be valid in Excel import?#198

  • TableStyle修改為枚舉類型

2.5.0-beta6

2020.11.26

  • The ColumnIndex property does not appear to be valid in Excel import?#198

2.5.0-beta5

2020.11.25

  • fix MappingValues The total length of a DataValidation list cannot exceed 255 characters?#196

  • Excel導出List數據類型存在錯誤,以及格式化問題。?#191 #193

2.5.0-beta4

2020.11.20?To fix The Mapping Values of The total length of a Data Validation list always exceed 255 characters (# 196) (https://github.com/dotnetcore/Magicodes.IE/issues/196)

  • Excel export List data type errors, and formatting issues.?#191?[193] (https://github.com/dotnetcore/Magicodes.IE/issues/193)

  • 導入Excel對Enum類型匹配值映射時,忽略值前后空格

2.5.0-beta3

2020.10.29

  • Excel生成導入模板支持內置數據驗證#167

    • 支持MaxLengthAttribute、MinLengthAttribute、StringLengthAttribute、RangeAttribute

    • 支持數據驗證

    • 支持輸入提示

2.5.0-beta2

2020.10.20

  • Excel導出支持HeaderRowIndex?#164

  • 增加Excel枚舉導出對DescriptionAttribute的支持?#168

2.4.0

2020.10.01

  • 支持單元格導出寬度設置?#129

  • Excel導出支持對Enum的ValueMapping設置?#106

  • Excel導出支持對bool類型的ValueMapping設置?#16

  • #152?篩選器支持依賴注入

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){AppDependencyResolver.Init(app.ApplicationServices);//all other code}
  • #151 導出添加AutoFitMaxRows,超過指定行數則不啟用AutoFit

  • 添加全局IsDisableAllFilter屬性,以通過特性禁用所有篩選器

  • #142?【修復】根據模板列表高度的設置,統一設置渲染高度

  • #157【修復】對低版本框架的兼容

  • Excel導入對圖片獲取算法的優化

2.4.0-beta4

2020.09.26

  • #157【修復】對低版本框架的兼容

2.4.0-beta3

2020.09.24

  • #142?【修復】根據模板列表高度的設置,統一設置渲染高度

2.4.0-beta2

2020.09.16

  • #152?篩選器支持依賴注入

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){AppDependencyResolver.Init(app.ApplicationServices);//all other code}
  • #151 導出添加AutoFitMaxRows,超過指定行數則不啟用AutoFit

  • 添加全局IsDisableAllFilter屬性,以通過特性禁用所有篩選器

2.4.0-beta1

2020.09.14

  • 支持單元格導出寬度設置?#129

  • Excel導出支持對Enum的ValueMapping設置?#106

  • Excel導出支持對bool類型的ValueMapping設置?#16

2.3.0

2020.08.30

2.3.0-beta8

2020.08.22

  • 修復基于文件流導入時的NULL異常,并完善單元測試?#141**

2.3.0-beta7

2020.08.16

  • excel添加對ExpandoObject類型的支持?#135**

2020.08.10

  • 【Nuget】版本更新到2.3.0-beta6

  • 多Sheet導入保存標注錯誤單元測試,并沒出現多數據導入效驗bug?#108

  • Excel多Sheet 導入模板生成?#133

  • 修復Excel模板圖片高度問題?#131

2020.08.04

  • 【Nuget】版本更新到2.3.0-beta5

  • 在runtimes native包問題

  • 對于跨平臺native中?COM Interop is not supported on this platform.修復?#130

2020.07.14

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

2020.07.13

  • 【Nuget】版本更新到2.3.0-beta3

  • 【PDF導出】修復Linux下導出PDf 出錯問題?#125

2020.07.06

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

  • 【Excel導出】導出業務錯誤數據支持直接返回錯誤數據的文件流字節

  • 【Excel導出】對追加sheet實現同一個Model可自定義傳入不同sheet名稱

    • exporter.Append(list1,"sheet1").SeparateBySheet().Append(list2).ExportAppendData(filePath);

  • 【Nuget】針對于一些客戶端不支持SemVer 2.0.0 進行采取兼容機制

2020.06.22

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

  • 【Excel導出】添加對Excel模板導出函數的支持

    - {{Formula::AVERAGE?params=G4:G6}}- {{Formula::SUM?params=G4:G6&G4}}

2020.06.16

  • 【Nuget】版本更新到2.2.6

  • 【HTML導出】添加對NETCore2.2模板引擎的支持

2020.06.14

  • 【Nuget】版本更新到2.2.5

  • 【Excel導出】增加分欄、分sheet、追加rows導出?#74

    - exporter.Append(list1).SeparateByColumn().Append(list2).ExportAppendData(filePath);
    - exporter.Append(list1).SeparateBySheet().Append(list2).ExportAppendData(filePath);
    - exporter.Append(list1).SeparateByRow().AppendHeaders().Append(list2).ExportAppendData(filePath);
  • [Excel導出】修復‘IsAllowRepeat=true’?#107

  • [Pdf導出】增加PDF擴展方法,支持通過以參數形式傳遞特性參數?#104

    - Task<byte[]> ExportListBytesByTemplate<T>(ICollection<T> data, PdfExporterAttribute pdfExporterAttribute,string temple);
    - Task<byte[]> ExportBytesByTemplate<T>(T data, PdfExporterAttribute pdfExporterAttribute,string template);

2020.06.07

  • 【Nuget】版本更新到2.2.4

  • 【Excel導入】增加導入失敗僅返回錯誤行功能

  • 【Excel導入】修復導入的空行標注位置偏移

  • 【Excel導出】增加SeparateByColumn進行分割追加列

2020.05.31

  • 【Nuget】版本更新到2.2.3

  • 【Excel導入】增加了stream Csv導入擴展方法

  • 【Word導出】修復word文件字節導出錯誤

2020.05.24

  • 【Nuget】版本更新到2.2.2

  • 【Excel導入】增加了stream導入擴展方法

  • 【Excel導出】增加了內容居中(單列居中、整表居中)

  • 【導出】對一些中間件代碼進行了修復及優化

2020.05.16

  • 【Nuget】版本更新到2.2.1

  • 【PDF導出】對模板引擎進行升級更新

2020.05.12

  • 【Nuget】版本更新到2.2.0

  • 【Excel模板導出】支持導出字節

  • 【文檔】Magicodes.IE Csv導入導出

  • 【Excel導入導出】修復標注的添加問題

  • 【導出】ASP.NET Core Web API 中使用自定義格式化程序導出Excel、Pdf、Csv等內容?#64

  • 【導入導出】支持使用System.ComponentModel.DataAnnotations命名空間下的部分特性來控制導入導出?#63

2020.04.16

  • 【Nuget】版本更新到2.2.0-beta9

  • 【Excel模板導出】修復只存在一列時的導出?#73

  • 【Excel導入】支持返回表頭和索引?#76

  • 【Excel導入導入】#63

    • IEIgnoreAttribute(可作用于屬性、枚舉成員,可影響導入和導出)

    • DisplayAttribute

    • DisplayFormatAttribute

    • DescriptionAttribute

    • 支持使用System.ComponentModel.DataAnnotations命名空間下的部分特性來控制導入導出,比如

    • 封裝簡單的易于使用的單一特性,例如

2020.04.02

  • 【Nuget】版本更新到2.2.0-beta8

  • 【Excel模板導出】支持圖片?#62,渲染語法如下所示:

{{Image::ImageUrl?Width=50&Height=120&Alt=404}}{{Image::ImageUrl?w=50&h=120&Alt=404}}{{Image::ImageUrl?Alt=404}}

2020.03.29

  • 【Nuget】版本更新到2.2.0-beta7

  • 【Excel模板導出】修復渲染問題?#51

2020.03.27

  • 【Nuget】版本更新到2.2.0-beta6

  • 【Excel導入導出】修復.NET Core 2.2的包引用問題?#68

2020.03.26

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

  • 【Excel多Sheet導出】修復#66,并添加單元測試

2020.03.25

  • 【Nuget】版本更新到2.2.0-beta3

  • 【Excel導入】修復日期問題?#68

  • 【Excel導出】添加ExcelOutputType設置,支持輸出無格式的導出。#54可以使用此方式。

2020.03.19

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

  • 【Excel導入】修復日期格式的導入Bug,支持DateTime和DateTimeOffset以及可為空類型,默認支持本地化時間格式(默認根據地區自動使用本地日期時間格式)

  • 【Excel導入導出】添加單元測試ExportAndImportUseOneDto_Test,對使用同一個Dto導出并導入進行測試。Issue見?#53

2020.03.18

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

  • 【Excel導出】添加以下API:

/// <summary>///     追加集合到當前導出程序///     append the collection to context/// </summary>/// <typeparam name="T"></typeparam>/// <param name="dataItems"></param>/// <returns></returns>ExcelExporter Append<T>(ICollection<T> dataItems) where T : class;/// <summary>///     導出所有的追加數據///     export excel after append all collectioins/// </summary>/// <param name="fileName"></param>/// <returns></returns>Task<ExportFileInfo> ExportAppendData(string fileName);/// <summary>///     導出所有的追加數據///     export excel after append all collectioins/// </summary>/// <param name="fileName"></param>/// <returns></returns>Task<byte[]> ExportAppendDataAsByteArray();
  • 【Excel導出】支持多個實體導出多個Sheet,感謝@ccccccmd 的貢獻?#pr52 ,Issue見?#50。使用代碼參考,具體見單元測試(ExportMutiCollection_Test):

var exporter = new ExcelExporter();var list1 = GenFu.GenFu.ListOf<ExportTestDataWithAttrs>();var list2 = GenFu.GenFu.ListOf<ExportTestDataWithSplitSheet>(30);var result = exporter.Append(list1).Append(list2).ExportAppendData(filePath);

2020.03.12

  • 【Nuget】版本更新到2.1.4

  • 【Excel導入】支持圖片導入,見特性ImportImageFieldAttribute

    • 導入為Base64

    • 導入到臨時目錄

    • 導入到指定目錄

  • 【Excel導出】支持圖片導出,見特性ExportImageFieldAttribute

    • 將文件路徑導出為圖片

    • 將網絡路徑導出為圖片

2020.03.06

  • 【Nuget】版本更新到2.1.3

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

2020.02.25

  • 【Nuget】版本更新到2.1.2

  • 【導入導出】已支持CSV

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

2020.02.24

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

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

  • 【重構】添加兩個接口

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

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

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

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

2020.02.14

  • 【Nuget】版本更新到2.1.0

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

2020.02.13

  • 【Nuget】版本更新到2.0.2

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

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

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

2020.02.11

  • 【Nuget】版本更新到2.0.0

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

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

2020.02.05

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

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

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

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

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

2020.02.04

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

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

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

2020.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);

2020.01.16

  • 【Nuget】版本更新到1.4.25

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

2020.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)。

2020.01.14

  • 【Nuget】版本更新到1.4.21

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

2020.01.09

  • 【Nuget】版本更新到1.4.20

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

2020.01.08

  • 【Nuget】版本更新到1.4.18

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

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

    • 完成相關單元測試

2020.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

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280659.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280659.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280659.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle監聽的靜態注冊和動態注冊

靜態注冊&#xff1a;通過解析listene.ora文件 動態注冊&#xff1a;由PMON進程動態注冊至監聽中 在沒有listener.ora配置文件的情況下&#xff0c;如果啟動監聽&#xff0c;則監聽為動態注冊。用圖形化netca創建的監聽&#xff0c;默認也為動態注冊 1.靜態注冊 listener.ora文…

AKOJ-1695-找素數

題意&#xff1a; 給定區間L&#xff0c;R。 計算區間中素數個數。 2 < L,R < 2147483647, R-L < 1000000。 思路&#xff1a; 素數區間篩 先篩(2-sqrt(r))。 再用(2-sqrt(r))中的素數篩(l-r)。 代碼: 1.自己寫的區間篩&#xff0c;將篩2-sqrt&#xff08;r) 分開了。…

Spring 環境與profile(一)——超簡用例

什么是profile,為什么需要profile? 在開發時&#xff0c;不同環境&#xff08;開發、聯調、預發、正式等&#xff09;所需的配置不同導致&#xff0c;如果每改變一個環境就更改配置不但麻煩&#xff08;修改代碼、重新構建&#xff09;而且容易出錯。Spring提供了解決方案。 方…

Django04-1: ORM增刪改查

ORM 增刪改查 一、字段增加 #終端輸入 1.model里添加字段&#xff0c; 2.執行遷移命令。 3.終端里輸入默認值&#xff0c;繼續執行遷移命令。 #允許為空 再nulltrue&#xff0c;終端不需要輸入默認值 #設置默認值 defalult‘xxxx‘ 二、字段修改 1.直接修改代碼&…

Comcast以純文本泄露客戶Wi-Fi登錄信息,立即更改密碼

A Comcast Xfinity website was leaking Wi-Fi names and passwords, meaning now is a good time to change your Wi-Fi passcode. Comcast Xfinity網站泄漏了Wi-Fi名稱和密碼&#xff0c;這意味著現在是更改Wi-Fi密碼的好時機。 The site, intended to help new customers se…

SpringBoot詳解(一)-快速入門

SpringBoot詳解系列文章&#xff1a;SpringBoot詳解&#xff08;一&#xff09;-快速入門SpringBoot詳解&#xff08;二&#xff09;-Spring Boot的核心SpringBoot詳解&#xff08;三&#xff09;-Spring Boot的web開發SpringBoot詳解&#xff08;四&#xff09;-優雅地處理日志…

龍芯上跑WTM,為國產化做點貢獻

點擊上方藍字關注我哦“信創”&#xff0c;是一項國家戰略&#xff0c;即信息技術應用創新產業&#xff0c;它是數據安全、網絡安全的基礎&#xff0c;也是新基建的重要組成部分。信創從名稱上來看本意指向創新&#xff0c;但是自從漂亮國親手撕碎了“科技沒有國界”的謊言之后…

Class與Style綁定

對于數據綁定&#xff0c;一個常見的需求是操作元素的class列表和它的內聯樣式。因為它們都是attribute&#xff0c;我們可以用v-bind處理它們&#xff1a;只需要計算出表達式最終的字符串。不過&#xff0c;字符串拼接麻煩又易錯。因此&#xff0c;在v-bind用于class和style時…

PHP安裝之configure的配置參數

1、生成環境安裝配置如下 要求安裝如下庫&#xff1a; imagickgdmysqlmysqlimysqlndphalconPharsoapsocketsxwebxsvczipzlib 具體查看 vim php-config 就可以知道是如何配置的 --prefix/home/php --with-config-file-path/home/php/etc --with-mysql --with-pdo-oci --with-ope…

Django05: 請求生命周期流程圖/路由層

請求生命周期流程圖 擴展知識&#xff1a; 緩存數據庫 路由層 路由匹配 url(r^test/, views.test), 1. 第一個參數是正則匹配。 只要第一個匹配了&#xff0c;就不會執行下面。 輸入url會默認加斜杠&#xff0c;django會重定向 a. 一次匹配不行 b. url再加斜杠匹配 可以…

facebook 分享頁面_Facebook個人資料,頁面和組之間有什么區別?

facebook 分享頁面Facebook is used by a lot of different people for a lot of different things, so it’s only natural that Facebook would have different sets of features for each of them. There are three main ways you can use Facebook: with a regular Profile…

zabbix運行腳本監控ggsci報錯

/u01/app/oracle/oracle/ogg/ggsci: error while loading shared libraries: libdb-6.1.so: cannot open shared object file: No such file or directory增加腳本環境變量設置PATH$PATH:$HOME/binexport ORACLE_BASE/u01/app/oracleexport ORACLE_HOME$ORACLE_BASE/11/db_1exp…

一句話設計原則

面向對象的可復用設計&#xff08; Object Oriented Design / OOD&#xff09; 1. 開閉原則 (Open Closed Principle) 對擴展開放&#xff0c;對修改關閉 2. 里氏代換原則(LSP) 1.可以使用基類的地方&#xff0c;其子類必然也能使用 2.并且原功能不會受到任何影響 -- 經典案例,…

postman--安裝及Interceptor插件

1. 官網安裝&#xff08;看網速-我下載的時候一直下載失敗&#xff09;打開官網&#xff0c;https://www.getpostman.com選擇ios或者win 2. 非官網安裝 https://pan.baidu.com/s/1mstsimqO3ZC5m9z8czxVnA 密碼&#xff1a;q6yp 安裝postman 3.需要安裝分享的藍燈安裝包&#xf…

亞馬遜標題自動抓取_如何為您的家人提供自動Amazon禮品卡津貼

亞馬遜標題自動抓取When your kids move away to go to school, they’ll probably phone home every once in a while to ask for money. If they shop a lot on Amazon (and they probably do), you can expedite that process by setting up an automatically recurring dep…

Django04-2: ORM關系表\字段補充

一、表與表關系 一對多 多對多 一對一 圖書表 出版社 作者表 作者詳情表 出版社 和 圖書表 關系 一對多 外鍵字段在多的一方 book 圖書表 和 作者表 關系 多對多 需要創建第三張表 作者表 和 作者詳情表 關系 一對一 #創建表關系 先將基表創建 再添加外鍵字段 一對多…

我 與 TDesignBlazor 的故事

前言作者打拼了 .NET 十多年&#xff0c;屬于全棧應用類型的工程師&#xff0c;特別是對于前端的技術情有獨鐘&#xff0c;從純js到jquery&#xff0c;從bootstrap到自己寫css&#xff0c;從web到winform&#xff0c;還寫過一段時間的knockout.js&#xff0c;以至于公司里的前端…

實驗數據

1.整段deng音頻200多秒 2.加xx(1000:1480)之后 轉載于:https://www.cnblogs.com/20179302yzl/p/10270632.html

25個好用的Shell腳本常用命令分享

1.列出所有目錄使用量&#xff0c;并按大小排序。復制代碼 代碼如下:ls|xargs du -h|sort -rn #不遞歸下級目錄使用du -sh2.查看文件排除以#開關和空白行&#xff0c;適合查看配置文件。復制代碼 代碼如下:egrep -v "^#|^$" filenamesed /#.*$/d; /^ *$/d3.刪除空格…

mysql中查詢一個字段屬于哪一個數據庫中的哪一個表的方式

mysql中查詢一個字段具體是屬于哪一個數據庫的那一張表&#xff1a;用這條語句就能查詢出來,其中 table_schema 是所在庫, table_name 是所在表 --mysql中查詢某一個字段名屬于哪一個庫中的哪一張表 select table_schema,table_name from information_schema.columns where col…