Magicodes.IE 2.7.0發布

b814647c7b55d0fdc56024d2f06bde82.jpeg

2.7.0

2022.11.07

  • 使用SkiaSharp替代SixLabors.ImageSharp

  • 移除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/281259.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281259.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281259.shtml

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

相關文章

Mobx 與 Redux 的性能對比

在本文中你將看到我最終得出的結論是 Mobx 的性能優于 Redux。但很明顯這樣的結論是片面的&#xff0c;甚至是有失偏頗的&#xff0c;因為我只選取了一個的場景對兩者進行測試。可能真實的情況恰恰相反&#xff0c;Mobx 僅僅在我測試的這個場景中優于 Redux&#xff0c;但是在我…

linux lsof/netstat查看進程和端口號相關命令:

本文為博主原創&#xff0c;未經允許不得轉載&#xff1a; 在linux操作時&#xff0c;經常要查看運行的項目的進程和端口號&#xff0c;在這里總結了以下常用到的相關命令&#xff1a; 1.查看系統運行的java項目&#xff0c;并查看進程號 這個用到的命令為&#xff1a; ps -ef|…

C#高級編程9 第17章 使用VS2013-C#特性

C#高級編程9 第17章 使用VS2013 編輯定位到 如果默認勾選了這項&#xff0c;請去掉勾選&#xff0c;因為勾選之后解決方案的目錄會根據當前文件選中。 可以設置項目并行生成數 版本控制軟件設置 所有文本編輯器行號顯示 啟用編輯繼續 收集調試信息&#xff0c;將影響性能 Code …

還在手畫C#依賴關系圖嗎?快來試試這個工具吧!

還在手畫C#依賴關系圖嗎&#xff1f;快來試試這個工具吧&#xff01;筆者最近見到了一個不錯的工具&#xff0c;可以讓大家在看代碼的時候一鍵生成C#依賴的類圖。非常適合編寫文檔、查看和學習開源項目設計時使用&#xff0c;比如下方就是筆者通過這個工具生成的Microsoft.Exte…

Web服務器 - Apache配置介紹

基本語法 常量的定義與使用&#xff0c;使用關鍵詞 Define 可以定義常量&#xff0c;使用 ${} 插入常量&#xff0c;如下 語法規則說明示列Define定義常量Define SRVROOT “D:/srv/Apache24”${}使用常量ServerRoot “${SRVROOT}”/表示路徑時使用 / 而不使用 \D:/srv/Apache…

點火開關分為4個檔位,分別是off,acc,IG-on,和ST

off全車除了常火&#xff08;如應急燈&#xff0c;時鐘等的記憶功能&#xff09;外&#xff0c;均不供電。acc 是附件檔&#xff0c;部分車載附屬設備供電&#xff0c;如視聽系統&#xff0c;儀表燈&#xff0c;燈光等。也就是說&#xff0c;車停在哪里&#xff0c;發動機不轉&…

h5的formData 上傳文件及.net后臺

先來前端的代碼&#xff1a; html 代碼&#xff1a; <input type"file" id"files" value"" multiple/> js代碼&#xff1a; function init() {var ele_files document.querySelector("#files");ele_files.addEventListener(&qu…

51 Nod 1027 大數乘法【Java大數亂搞】

1027 大數乘法 基準時間限制&#xff1a;1 秒 空間限制&#xff1a;131072 KB 分值: 0 難度&#xff1a;基礎題 給出2個大整數A,B&#xff0c;計算A*B的結果。Input第1行&#xff1a;大數A 第2行&#xff1a;大數B (A,B的長度 < 1000&#xff0c;A,B > 0&#xff09; Out…

關于ASP.NET Core WebSocket實現集群的思考

前言提到WebSocket相信大家都聽說過&#xff0c;它的初衷是為了解決客戶端瀏覽器與服務端進行雙向通信&#xff0c;是在單個TCP連接上進行全雙工通訊的協議。在沒有WebSocket之前只能通過瀏覽器到服務端的請求應答模式比如輪詢&#xff0c;來實現服務端的變更響應到客戶端&…

windows環境下Apache+PHP+MySQL搭建服務器

相關文件下載 下載地址Apachehttps://www.apachehaus.com/cgi-bin/download.plxPHPhttps://windows.php.net/downloadMySQLhttps://dev.mysql.com/downloads/mysql/MySQL MySQL配置 當前使用的MySQL版本是8.0.18&#xff0c;在MySQL根目錄下新建my.ini文件&#xff0c;下面是…

angular.js國際化模塊

最近需要將一個項目轉化成英文的&#xff0c; 于是發現一個angular模塊angular-translate&#xff0c;實現如下&#xff1a; 1.安裝包 bower install angular-translate bower install angular-translate-loader-static-files //然后在頁面引用進去 <script src"/angul…

觸屏網站如何實現返回并刷新

目的 在會員中心等頁面常常會遇到進入內頁修改信息&#xff0c;返回前一個頁面需要更新信息的場景。 思路 用COOKIE記錄當前頁面是否需要刷新&#xff0c;返回之后再刷新一次頁面。 方案 下載js.cookie.js然后引入到項目中 https://github.com/js-cookie/js-cookie 先來一個最簡…

更快,更強的.NET 7 發布了

.NET Conf 2022 在昨晚(11?8?) 11 點 正式開始了&#xff0c;為期三天的會議&#xff08;11?8-10?&#xff09;&#xff0c; 圍繞 .NET 7 展開。相信各位?伙伴都已經開始安裝 .NET 7 正式版本還有以及相關的開發?具。這次 .NET 7 圍繞傳統的 C# &#xff0c;ASP.NET Core…

Web服務器 - Nginx配置介紹

nginx的配置相對簡單&#xff0c;總體來說分為5種模塊 全局塊&#xff1a;配置影響nginx全局的指令。一般有運行nginx服務器的用戶組&#xff0c;nginx進程pid存放路徑&#xff0c;日志存放路徑&#xff0c;配置文件引入&#xff0c;允許生成worker process數等。events塊&…

jvm(Java virtual machine) JVM架構解釋

2019獨角獸企業重金招聘Python工程師標準>>> JVM 架構解釋 每個Java開發者都知道通過JRE【Java運行環境】執行字節碼。 但是很多人都不知道JRE是JVM實現的事實。JVM負責執行字節碼的分析 代碼的解釋和運行。 我們應該了解JVM的架構&#xff0c;這對開發者來說是很重…

Hyper-V 嵌套虛擬化

先決條件運行 Windows Server 2016 或Windows 10 周年更新的 Hyper-V 主機。運行 Windows Server 2016 或Windows 10 周年更新的 Hyper-V VM。配置版本為 8.0 或更高的 Hyper-V VM。采用 VT-x 和 EPT 技術的 Intel 處理器&#xff08;AMD-V技術的暫時不支持&#xff09;>Set…

簡單的面試題簡解思路(搜集)

1. 統計字符串中單詞出現次數 "hi how are you i am fine thank you youtube am am "&#xff0c;統計"you"出現的次數。 方法一 : split() function wordCount(str,word){var str str || "";var word word || "";var strArr s…

WinForm(十五)窗體間通信

在很多WinForm的程序中&#xff0c;會有客戶端之間相互通信的需求&#xff0c;或服務端與客戶端通信的需求&#xff0c;這時就要用到TCP/IP的功能。在.NET中&#xff0c;主要是通過Socket來完成的&#xff0c;下面的例子是通過一個TcpListerner作為監聽&#xff0c;等待TcpClie…

905. 按奇偶排序數組

1// 905. 按奇偶排序數組 2/** 3 * param {number[]} A 4 * return {number[]} 5 */ 6var sortArrayByParity function(A) { 7 return A.filter(value > value % 2 0).concat( 8 A.filter(value > value % 2 1) 9 )10}; 轉載于:https://www.cnblogs.com/…

關于Java開發需要注意的十二點流程

1.將一些需要變動的配置寫在屬性文件中 比如&#xff0c;沒有把一些需要并發執行時使用的線程數設置成可在屬性文件中配置。那么你的程序無論在DEV環境中&#xff0c;還是TEST環境中&#xff0c;都可以順暢無阻地運行&#xff0c;但是一旦部署在PROD上&#xff0c;把它作為多線…