专栏首页雪雁的专栏Magicodes.IE 2.2发布

Magicodes.IE 2.2发布

Magicodes.IE 2.2发布

导入导出通用库,支持DTO导入导出以及动态导出,支持Excel、Word、PDF、CSV和HTML。已加入ncc开源组织.

Magicodes.IE2.0发布

Magicodes.IE2.1发布

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

  • GitHub:https://github.com/dotnetcore/Magicodes.IE
  • 码云(手动同步,不维护):https://gitee.com/magicodes/Magicodes.IE
  • 特点、详细说明、教程、Nuget、注意事项、里程碑、FAQ、更新历史见下文

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

最新版本2.2.0

2.2版本内容

2020.05.12

  • [Nuget]版本更新到2.2.0
  • [EXCEL模板导出]支持导出字节
  • [文档]Magicodes.IE CSV导入导出
  • [EXCEL导入导出]修复标注的添加问题
  • [导出]ASP.NETCoreWebAPI中使用自定义格式化程序导出Excel、PDF、CSV等内容 #64
  • [导入导出]支持使用System.ComponentModel.DataAnnoations命名空间下的部分特性来控制导入导出 #63

2020.04.16

  • [Nuget]版本更新到2.2.0-Beta 9
  • [EXCEL模板导出]修复只存在一列时的导出#73 https://github.com/dotnetcore/Magicodes.IE/issues/73
  • [EXCEL导入]支持返回表头和索引#76 https://github.com/dotnetcore/Magicodes.IE/issues/76
  • [EXCEL导入导入]#63
    • IEIgnoreAttribute(可作用于属性、枚举成员,可影响导入和导出)
    • 显示属性
    • DisplayFormatAttribute
    • DescriptionAttribute
    • 支持使用系统.ComponentModel.DataAnnoations命名空间下的部分特性来控制导入导出,比如
    • 封装简单的易于使用的单一特性,例如 IEIgnoreAttribute(可作用于属性、枚举成员,可影响导入和导出)

2020.04.02

  • [Nuget]版本更新到2.2.0-Beta 8
  • [EXCEL模板导出]支持图片#62 https://github.com/dotnetcore/Magicodes.IE/issues/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-Beta 7
  • [EXCEL模板导出]修复渲染问题#51 https://github.com/dotnetcore/Magicodes.IE/issues/51

2020.03.27

  • [Nuget]版本更新到2.2.0-Beta 6
  • [EXCEL导入导出]修复.NET Core 2.2的包引用问题#68 https://github.com/dotnetcore/Magicodes.IE/issues/68

2020.03.26

  • [Nuget]版本更新到2.2.0-Beta 4
  • [EXCEL多Sheet导出]修复#66、并添加单元测试 https://github.com/dotnetcore/Magicodes.IE/issues/66

2020.03.25

  • [Nuget]版本更新到2.2.0-beta3
  • [EXCEL导入]修复日期问题#68 https://github.com/dotnetcore/Magicodes.IE/issues/68
  • [EXCEL导出]添加ExcelOutputType设置,支持输出无格式的导出.#54可以使用此方式.

2020.03.19

  • [Nuget]版本更新到2.2.0-Beta 2
  • [EXCEL导入]修复日期格式的导入Bug,支持datetime和DateTimeOffset以及可为空类型,默认支持本地化时间格式(默认根据地区自动使用本地日期时间格式]
  • [EXCEL导入导出]添加单元测试ExportandImportUseOneDto_Test,对使用同一个dto导出并导入进行测试.发行见#53

2020.03.18

  • [Nuget]版本更新到2.2.0-Beta 1
  • [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导出]支持多个实体导出多个表,感谢@ccccccmd的贡献#PR52 https://github.com/dotnetcore/Magicodes.IE/pull/52 发布见#50 https://github.com/dotnetcore/Magicodes.IE/issues/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);

疯狂的徽章

Azure DevOps

具体见:

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

里程碑

Nuget

Magicodes Nuget包推荐

注意

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

教程

  1. 基础教程之导入学生数据 (点此访问)
  2. 基础教程之导出Excel (点此访问)
  3. 基础教程之导出PDF收据(点此访问)
  4. 在码头中使用
  5. (动态导出(待补充)
  6. (多Sheet导入(待补充)
  7. csv导入导出
  8. EXCEL图片导入导出 (点此访问)
  9. EXCEL模板导出之导出教材订购表(点此访问)
  10. (进阶篇之导入导出筛选器(待补充)
  11. (EXCEL导出多个实体(待补充)

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

更新历史见下文.

特点

  • 需配合相关导入导出的DTO模型使用,支持通过DTO以及相关特性控制导入导出.配置特性即可控制相关逻辑和显示结果,无需修改逻辑代码;
  • 支持各种筛选器,以便支持多语言、动态控制列展示等场景,具体使用见单元测试:
    • (导入列头筛选器(可动态指定导入列、导入的值映射关系)
    • 导出列头筛选器(可动态控制导出列,支持动态导出(数据表)
    • (导入结果筛选器(可修改标注文件)
  • 导出支持文本自定义过滤或处理;
  • 导入支持中间空行自动跳过;
  • 导入支持自动根据DTO生成导入模板,针对必填项将自动标注;
  • 导入支持数据下拉选择,目前仅支持枚举类型;
  • 导入数据支持前后空格以及中间空格处理,允许指定列进行设置; 导入支持模板自动检查,数据自动校验,异常统一处理,并提供统一的错误封装,包含异常、模板错误和行数据错误;
  • 支持导入表头位置设置,默认为1;
  • 支持导入列乱序,无需按顺序一一对应;
  • 支持导入指定列索引,默认自动识别;
  • 导出Excel支持拆分Sheet,仅需设置特性[ExporterAttribute]的[MaxRowNumberOnASheet]的值,为0则不拆分。具体见单元测试;
  • 支持将导入Excel进行错误标注;
  • 导入支持截止列设置,如未设置则默认遇到空格截止;
  • 支持导出HTML、Word、PDF,支持自定义导出模板;
    • 导出HTML
    • 导出字
    • 导出PDF,支持设置,具体见更新日志
    • 导出收据
  • 导入支持重复验证;
  • 支持单个数据模板导出,常用于导出收据、凭据等业务
  • 支持动态列导出(基于数据表),并且超过100 W将自动拆分工作表。(感谢张善友老师(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模板导出,并且支持图片渲染
  • 渲染语法如下所示: {{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导入模板生成标注
  • 支持Excel图片导入导出
    • 将文件路径导出为图片
    • 将网络路径导出为图片
    • 导入为Base 64
    • 导入到临时目录
    • 导入到指定目录
    • 图片导入
    • 图片导出
  • 支持多个实体导出多个片材
  • 支持使用系统.ComponentModel.DataAnnoations命名空间下的部分特性来控制导入导出 #63 https://github.com/dotnetcore/Magicodes.IE/issues/63
  • 支持在ASP.NET核心网络API中使用自定义格式化程序导出Excel、PDF、CSV等内容 #64 https://github.com/dotnetcore/Magicodes.IE/issues/64

常见问题

问题列表

https://github.com/dotnetcore/Magicodes.IE/issues?q=label%3Aquestion

本文分享自微信公众号 - magiccodes(xl----0),作者:magiccodes

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Magicodes.IE 2.1发布

    如上图所示,Magicodes.IE 2.1主要完成了以下内容(具体可以访问GitHub):

    心莱科技雪雁
  • Magicodes.IE 2.2里程碑需求和建议征集

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

    心莱科技雪雁
  • Magicodes.IE在.NET Core中通过请求头导出多种格式文件

    在2.2里程碑中我们增加了一些新的功能,正如标题所写通过请求头进行导出我们不同格式的文件.下面我们来看一下如何使用.通过这种方式无论是对我们的数据多用途,还是说...

    心莱科技雪雁
  • 浅谈学习正则表达式的重要性

    2017-08-10 by Liuqingwen | Tags: Hexo Web | Hits

    IT自学不成才
  • [Unity3D]关于U3D贴图格式压缩

    因为有不少人都问过我压缩格式的问题,今天飞哥又重新提醒了一次。整理一下发个贴,以供大家查阅和讨论。

    py3study
  • Tmux 使用

    [1] 十分钟学会 tmux [2] Tmux使用手册 [3] 第 2 章 配置 tmux

    JNingWei
  • Python Day5

    1、什么是模块 最常见的场景,一个模块就是包含了一组功能的python文件,例如module.py,模块名是module 可以使用import module,四...

    py3study
  • 全球top10医学院《nature》重磅论文被撤稿,涉及多名华人科学家

    近日,世界顶级科技期刊《nature》对2014年发表题为《miR-34a blocks osteoporosis and bone metastasis by...

    科研菌
  • Human Interface Guidelines —— Split Views

    霖酱
  • linux下使用gcc编译运行C程序

    gcc(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和...

    张诺谦

扫码关注云+社区

领取腾讯云代金券