Popularity
6.1
Stable
Activity
9.3
Stable
639
42
169

Programming language: C#
Tags: CSV     POCO     Serialization     Serializer    

Magicodes.IE alternatives and similar packages

Based on the "Serialization" category

Do you think we are missing an alternative of Magicodes.IE or a related project?

Add another 'Serialization' Package

README

Magicodes.IE

导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf、Csv和Html。已加入NCC开源组织。

Magicodes.IE 2.0发布

Magicodes.IE 2.1发布

如何做好一个开源项目(一)

一旦成为贡献者,我们将会邀请您加入Magicodes.IE管理委员会的微信群,并拥有相关的投票权。

最新版本:2.2.2

疯狂的徽章

Financial Contributors on Open Collective

GitHub

  • GitHub contributors GitHub license badge GitHub repo size
  • GitHub commit activityGitHub last commit
  • GitHub issues badge GitHub issues badge
  • GitHub forks badge GitHub stars
  • GitHub pull requests GitHub closed pull requests

Azure DevOps

  • Build Status:Build Status
  • Azure DevOps coverage (master): Azure DevOps coverage (branch)
  • Azure DevOps coverage (develop): Azure DevOps coverage (branch)
  • Azure DevOps tests (master): Azure DevOps tests (master)
  • Azure DevOps tests (develop): Azure DevOps tests (develop)

具体见:https://dev.azure.com/xinlaiopencode/Magicodes.IE/_build?definitionId=4&_a=summary

里程碑

# 状态 完成时间 里程碑情况
3.0 🚢规划中 2020-12-31 待办
2.3 ☕进行中 2020-06-30 待办
2.2 🚩已完成 2020-04-31 已完成
2.1 🚩已完成 2020-03-15 已完成

Nuget

名称 Nuget
Magicodes.IE.Core NuGet
Magicodes.IE.Excel NuGet
Magicodes.IE.Pdf NuGet
Magicodes.IE.Word NuGet
Magicodes.IE.Html NuGet
Magicodes.IE.Csv NuGet
Magicodes.IE.AspNetCore NuGet

Magicodes Nuget包推荐

名称 说明 Nuget GitHUb
Magicodes.WeChat.MiniProgram 小程序SDK NuGet Magicodes.WxMiniProgram.Sdk
Magicodes.Sms.Aliyun 阿里云短信 NuGet xin-lai/Magicodes.Sms
Magicodes.Sms.Core 短信核心库 NuGet xin-lai/Magicodes.Sms
Magicodes.Sms.Aliyun.Abp 阿里云短信Abp模块 NuGet xin-lai/Magicodes.Sms
Magicodes.Storage.Core 通用存储核心库 NuGet xin-lai/Magicodes.Storage
Magicodes.Storage.AliyunOss.Core 阿里云OSS存储 NuGet xin-lai/Magicodes.Storage
Magicodes.Storage.Local.Core 本地存储 NuGet xin-lai/Magicodes.Storage
Magicodes.Storage.Tencent.Core 腾讯云存储 NuGet xin-lai/Magicodes.Storage
Magicodes.Storage.Abp.Core 通用存储ABP模块集成 NuGet xin-lai/Magicodes.Storage
Magicodes.WeChat.SDK.Core 微信SDK NuGet xin-lai/Magicodes.WeChat.SDK
Magicodes.SwaggerUI SwaggerUI API快速配置和分组 NuGet xin-lai/Magicodes.SwaggerUI
Magicodes.Pay.Alipay 支付宝支付库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Notify 支付通用回调库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Wxpay 微信支付库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Alipay.Global 国际支付宝支付库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Allinpay 通联支付库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Abp ABP 支付通用封装库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Abp.Allinpay ABP 通联支付模块 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Abp.Wxpay ABP 微信支付模块 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Alipay.Global ABP 国际支付宝模块 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Alipay ABP 支付宝模块 NuGet xin-lai/Magicodes.Pay
Magicodes.Abp.Castle.NLog ABP Nlog支持模块 NuGet xin-lai/Abp.Castle.NLog
Magicodes.WxMiniProgram.Sdk 微信小程序SDK NuGet xin-lai/Magicodes.WxMiniProgram.Sdk
Magicodes.WxMiniProgram.Sdk.Abp 微信小程序SDK Abp模块 NuGet xin-lai/Magicodes.WxMiniProgram.Sdk
Magicodes.Dingtalk.SDK 钉钉SDK NuGet xin-lai/Magicodes.Dingtalk.SDK
Magicodes.DynamicSqlApi.Core 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi
Magicodes.DynamicSqlApi.All 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi
Magicodes.DynamicSqlApi.CsScript 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi
Magicodes.DynamicSqlApi.Dapper 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi
Magicodes.DynamicSqlApi.SqlServer 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi

注意

  • Excel导入不支持“.xls”文件,即不支持Excel97-2003。
  • 如需在Docker中使用,请参阅文档中的《Docker中使用》一节。
  • 相关功能均已编写单元测试,在使用的过程中可以参考单元测试。

教程

  1. [基础教程之导入学生数据](docs/1.基础教程之导入学生数据.md "1.基础教程之导入学生数据") (点此访问国内文档

  2. [基础教程之导出Excel](docs/2.基础教程之导出Excel.md "2.基础教程之导出Excel") (点此访问国内文档)

  3. [基础教程之导出Pdf收据](docs/3.基础教程之导出Pdf收据.md "3.基础教程之导出Pdf收据") (点此访问国内文档)

  4. [在Docker中使用](docs/4.在Docker中使用.md "4.在Docker中使用")

  5. 动态导出(待补充)

  6. 多Sheet导入(待补充)

  7. [Csv导入导出](docs/7.Csv导入导出.md "7.Csv导入导出")

  8. [Excel图片导入导出](docs/8.Excel图片导入导出.md "8.Excel图片导入导出") (点此访问国内文档)

  9. [Excel模板导出之导出教材订购表](docs/9.Excel模板导出之导出教材订购表.md "9.Excel模板导出之导出教材订购表")(点此访问国内文档

  10. 进阶篇之导入导出筛选器(待补充)

  11. Excel导出多个实体(待补充)

其他教程见下文或单元测试

更新历史见下文。

特点

[总体说明](./docs/Magicodes.IE.png)

  • 需配合相关导入导出的DTO模型使用,支持通过DTO以及相关特性控制导入导出。配置特性即可控制相关逻辑和显示结果,无需修改逻辑代码; [](./res/导入Dto.png "导入Dto")
  • 支持各种筛选器,以便支持多语言、动态控制列展示等场景,具体使用见单元测试:
    • 导入列头筛选器(可动态指定导入列、导入的值映射关系)
    • 导出列头筛选器(可动态控制导出列,支持动态导出(DataTable))
    • 导入结果筛选器(可修改标注文件)
  • 导出支持文本自定义过滤或处理;
  • 导入支持中间空行自动跳过;
  • 导入支持自动根据 DTO 生成导入模板,针对必填项将自动标注; [](./res/自动生成的导入模板.png "自动生成的导入模板")
  • 导入支持数据下拉选择,目前仅支持枚举类型;
  • 导入数据支持前后空格以及中间空格处理,允许指定列进行设置;
  • 导入支持模板自动检查,数据自动校验,异常统一处理,并提供统一的错误封装,包含异常、模板错误和行数据错误; [](./res/数据错误统一返回.png "数据错误")
  • 支持导入表头位置设置,默认为1;
  • 支持导入列乱序,无需按顺序一一对应;
  • 支持导入指定列索引,默认自动识别;
  • 导出Excel支持拆分Sheet,仅需设置特性【ExporterAttribute】的【MaxRowNumberOnASheet】的值,为0则不拆分。具体见单元测试;
  • 支持将导入Excel进行错误标注; [](./res/数据错误.png "数据错误标注") [](./res/多个错误.png "多个错误")
  • 导入支持截止列设置,如未设置则默认遇到空格截止;
  • 支持导出HTML、Word、Pdf,支持自定义导出模板;
    • 导出HTML [](./res/导出html.png "导出HTML")
    • 导出Word [](./res/导出Word.png "导出Word")
    • 导出Pdf,支持设置,具体见更新日志 [](./res/导出Pdf.png "导出Pdf")
    • 导出收据 [](./res/导出收据.png "导出收据.png")
  • 导入支持重复验证; [](./res/重复错误.png "重复错误.png")
  • 支持单个数据模板导出,常用于导出收据、凭据等业务
  • 支持动态列导出(基于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,
          }
      

      [](./res/enum.png "枚举转数据映射序列")

    • bool类型默认会生成“是”和“否”的数据项

    • 如果已设置自定义值映射,则不会生成默认选项

  • 支持excel多Sheet导入; [](./res/multipleSheet.png "枚举转数据映射序列")

  • 支持Excel模板导出,并且支持图片渲染 [](./res/ExcelTplExport.png "Excel模板导出")

渲染语法如下所示:

    {{Company}}  //单元格渲染
    {{Table>>BookInfos|RowNo}} //表格渲染开始语法
    {{Remark|>>Table}}//表格渲染结束语法
    {{Image::ImageUrl?Width=50&Height=120&Alt=404}} //图片渲染
    {{Image::ImageUrl?w=50&h=120&Alt=404}} //图片渲染
    {{Image::ImageUrl?Alt=404}} //图片渲染

后续将支持自定义管道。

  • 支持Excel导入模板生成标注 [](./res/ImportLabel.png "Excel导入标注")

  • 支持Excel图片导入导出

    • 图片导入
    • 导入为Base64
    • 导入到临时目录
    • 导入到指定目录
    • 图片导出
    • 将文件路径导出为图片
    • 将网络路径导出为图片
  • 支持多个实体导出多个Sheet

  • 支持使用System.ComponentModel.DataAnnotations命名空间下的部分特性来控制导入导出 #63

  • 支持在ASP.NET Core Web API 中使用自定义格式化程序导出Excel、Pdf、Csv等内容 #64

FAQ

问题列表

联系我们

订阅号

关注“麦扣聊技术”订阅号可以获得最新文章、教程、文档:

[](./res/wechat.jpg "麦扣聊技术")

QQ群
  • 编程交流群

  • 产品交流群

文档官网&官方博客
其他开源库

更新历史

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
    • 支持使用System.ComponentModel.DataAnnotations命名空间下的部分特性来控制导入导出,比如
    • DisplayAttribute
    • DisplayFormatAttribute
    • DescriptionAttribute
    • 封装简单的易于使用的单一特性,例如
    • IEIgnoreAttribute(可作用于属性、枚举成员,可影响导入和导出)

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](https://github.com/dotnetcore/Magicodes.IE/pull/52) ,Issue见 [#50](https://github.com/dotnetcore/Magicodes.IE/issues/50)。使用代码参考,具体见单元测试(ExportMutiCollection_Test):

````csharp
            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

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

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

2019.12.10

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

2019.11.20

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

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
  • 【导入】导入完善对日期类型的支持
  • 【导入】完善导入的单元测试

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]


*Note that all licence references and agreements mentioned in the Magicodes.IE README section above are relevant to that project's source code only.