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中使用”一节.
相关功能均已编写单元测试,在使用的过程中可以参考单元测试.
教程
基础教程之导入学生数据 (点此访问)
基础教程之导出Excel (点此访问)
基础教程之导出PDF收据(点此访问)
在码头中使用
(动态导出(待补充)
(多Sheet导入(待补充)
csv导入导出
EXCEL图片导入导出 (点此访问)
EXCEL模板导出之导出教材订购表(点此访问)
(进阶篇之导入导出筛选器(待补充)
(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
联系我们
QQ群
编程交流群<85318032>
产品交流群<897857351>
文档官网&官方博客
文档官网:https://docs.xin-lai.com/
博客:http://www.cnblogs.com/codelove/
其他开源库
https://github.com/xin-lai
https://gitee.com/magicodes
层出不穷的新技术对程序员来说既是挑战也是机遇,固守自己的一亩三分地迟早落于他人,是时候跳出来看看行业内的发展新趋势,参与2020 DAMS中国数据智能管理峰会是个不错的选择,其中前沿技术议题包括:
《当5G遇上金融,看电信甜橙金融如何创新?》中国电信甜橙金融技术创新中心总经理 张小虎
《智能制造的数字化基础的设计与演进》长城汽车集团云计算总监 张小斌
《平安银行“传统+互联网”混合CMDB及运营中台实践》平安银行运营开发负责人 徐大蔚
《中信银行的DevOps实践》中信银行DevOps实施牵头人 李红涛
8月7日,一起在上海洞悉技术发展新趋势,逆袭码农人生吧!
转载是一种动力 分享是一种美德
如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
文档官网:docs.xin-lai.com
QQ群:
编程交流群<85318032>
产品交流群<897857351>