# Magicodes.IE **Repository Path**: taofut/Magicodes.IE ## Basic Information - **Project Name**: Magicodes.IE - **Description**: 导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf和Html。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: https://docs.xin-lai.com/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 101 - **Created**: 2020-08-16 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Magicodes.IE 导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf、Csv和Html。已加入NCC开源组织。 [Magicodes.IE 2.0发布](https://docs.xin-lai.com/2020/02/12/%E7%BB%84%E4%BB%B6/Magicodes.IE/Magicodes.IE%202.0%E5%8F%91%E5%B8%83/) [Magicodes.IE 2.1发布](https://mp.weixin.qq.com/s?__biz=MzU0Mzk1OTU2Mg==&mid=2247485222&idx=1&sn=a0f7c099fd76fea79bf3f7185d533652&chksm=fb023843cc75b1558c28ad09fd3814ba3839f11f878bb7d4c288d342afc7ededbf27f8b3f18d&token=630215531&lang=zh_CN#rd) [如何做好一个开源项目(一)](https://docs.xin-lai.com/2020/03/22/%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/%E5%A6%82%E4%BD%95%E5%81%9A%E5%A5%BD%E4%B8%80%E4%B8%AA%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%EF%BC%88%E4%B8%80%EF%BC%89/) - Github: - 码云(手动同步,不维护): - **特点、详细说明、教程、Nuget、注意事项、里程碑、FAQ、[更新历史](https://github.com/dotnetcore/Magicodes.IE#%E6%9B%B4%E6%96%B0%E5%8E%86%E5%8F%B2)见下文** **一旦成为贡献者,我们将会邀请您加入Magicodes.IE管理委员会的微信群,并拥有相关的投票权。** 最新版本:**2.3.0-beta2** ## 疯狂的徽章 [![Financial Contributors on Open Collective](https://opencollective.com/magicodes/all/badge.svg?label=financial+contributors)](https://opencollective.com/magicodes) ### GitHub - ![GitHub contributors](https://img.shields.io/github/contributors/dotnetcore/Magicodes.IE?style=social) ![GitHub license badge](https://img.shields.io/github/license/dotnetcore/Magicodes.IE?style=social) ![GitHub repo size](https://img.shields.io/github/repo-size/dotnetcore/Magicodes.IE?style=social) - ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/dotnetcore/Magicodes.IE?style=social) ​![GitHub last commit](https://img.shields.io/github/last-commit/dotnetcore/Magicodes.IE?style=social) - ![GitHub issues badge](https://img.shields.io/github/issues/dotnetcore/Magicodes.IE?style=social) ![GitHub issues badge](https://img.shields.io/github/issues-closed/dotnetcore/Magicodes.IE?style=social) - ![GitHub forks badge](https://img.shields.io/github/forks/dotnetcore/Magicodes.IE?style=social) ![GitHub stars](https://img.shields.io/github/stars/dotnetcore/Magicodes.IE?style=social) - ![GitHub pull requests](https://img.shields.io/github/issues-pr/dotnetcore/Magicodes.IE?style=social) ![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/dotnetcore/Magicodes.IE?style=social) ### Azure DevOps - Build Status:[![Build Status](https://dev.azure.com/xinlaiopencode/Magicodes.IE/_apis/build/status/dotnetcore.Magicodes.IE?branchName=master)](https://dev.azure.com/xinlaiopencode/Magicodes.IE/_build/latest?definitionId=4&branchName=master) - Azure DevOps coverage (master): ![Azure DevOps coverage (branch)](https://img.shields.io/azure-devops/coverage/xinlaiopencode/Magicodes.IE/4/master) - Azure DevOps coverage (develop): ![Azure DevOps coverage (branch)](https://img.shields.io/azure-devops/coverage/xinlaiopencode/Magicodes.IE/4/develop) - Azure DevOps tests (master): ![Azure DevOps tests (master)](https://img.shields.io/azure-devops/tests/xinlaiopencode/Magicodes.IE/4/master) - Azure DevOps tests (develop): ![Azure DevOps tests (develop)](https://img.shields.io/azure-devops/tests/xinlaiopencode/Magicodes.IE/4/develop) 具体见: ## 里程碑 | # | 状态 | 完成时间 | 里程碑情况 | | :--: | :-----------: | :------: | :----------------------------------------------------------: | | [3.0](https://github.com/dotnetcore/Magicodes.IE/issues?q=+is%3Aissue+milestone%3A3.0) | 🚢规划中 |2020-12-31| [待办](https://github.com/dotnetcore/Magicodes.IE/milestone/3) | | [2.3](https://github.com/dotnetcore/Magicodes.IE/issues?q=+is%3Aissue+milestone%3A2.3) | ☕进行中 |2020-06-30| [待办](https://github.com/dotnetcore/Magicodes.IE/milestone/5) | | [2.2](https://github.com/dotnetcore/Magicodes.IE/issues?q=+is%3Aissue+milestone%3A2.2) | 🚩已完成 |2020-04-31| [已完成](https://github.com/dotnetcore/Magicodes.IE/milestone/4) | | [2.1](https://github.com/dotnetcore/Magicodes.IE/issues?q=+is%3Aissue+milestone%3A2.1) | 🚩已完成 |2020-03-15| [已完成](https://github.com/dotnetcore/Magicodes.IE/milestone/2?closed=1) | ### Nuget | **名称** | **Nuget** | |----------|:-------------:| | **Magicodes.IE.Core** | **[![NuGet](https://buildstats.info/nuget/Magicodes.IE.Core)](https://www.nuget.org/packages/Magicodes.IE.Core)** | | **Magicodes.IE.Excel** | **[![NuGet](https://buildstats.info/nuget/Magicodes.IE.Excel)](https://www.nuget.org/packages/Magicodes.IE.Excel)** | | **Magicodes.IE.Pdf** | **[![NuGet](https://buildstats.info/nuget/Magicodes.IE.Pdf)](https://www.nuget.org/packages/Magicodes.IE.Pdf)** | | **Magicodes.IE.Word** | **[![NuGet](https://buildstats.info/nuget/Magicodes.IE.Word)](https://www.nuget.org/packages/Magicodes.IE.Word)** | | **Magicodes.IE.Html** | **[![NuGet](https://buildstats.info/nuget/Magicodes.IE.Html)](https://www.nuget.org/packages/Magicodes.IE.Html)** | | **Magicodes.IE.Csv** | **[![NuGet](https://buildstats.info/nuget/Magicodes.IE.Csv)](https://www.nuget.org/packages/Magicodes.IE.Csv)** | | **Magicodes.IE.AspNetCore** | **[![NuGet](https://buildstats.info/nuget/Magicodes.IE.AspNetCore)](https://www.nuget.org/packages/Magicodes.IE.AspNetCore)** | ### Magicodes Nuget包推荐 | 名称 | 说明 | Nuget | GitHUb | |----------|:-------------:|:-------------:|:-------------:| | Magicodes.WeChat.MiniProgram |小程序SDK |[![NuGet](https://buildstats.info/nuget/Magicodes.WeChat.MiniProgram)](https://www.nuget.org/packages/Magicodes.WeChat.MiniProgram) |**[Magicodes.WxMiniProgram.Sdk](https://github.com/xin-lai/Magicodes.WxMiniProgram.Sdk)**| | Magicodes.Sms.Aliyun |阿里云短信 | [![NuGet](https://buildstats.info/nuget/Magicodes.Sms.Aliyun)](https://www.nuget.org/packages/Magicodes.Sms.Aliyun) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Sms](https://github.com/xin-lai/Magicodes.Sms)**| | Magicodes.Sms.Core | 短信核心库 | [![NuGet](https://buildstats.info/nuget/Magicodes.Sms.Core)](https://www.nuget.org/packages/Magicodes.Sms.Core) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Sms](https://github.com/xin-lai/Magicodes.Sms)**| | Magicodes.Sms.Aliyun.Abp | 阿里云短信Abp模块 | [![NuGet](https://buildstats.info/nuget/Magicodes.Sms.Aliyun.Abp)](https://www.nuget.org/packages/Magicodes.Sms.Aliyun.Abp) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Sms](https://github.com/xin-lai/Magicodes.Sms)**| | Magicodes.Storage.Core |通用存储核心库| [![NuGet](https://buildstats.info/nuget/Magicodes.Storage.Core)](https://www.nuget.org/packages/Magicodes.Storage.Core) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Storage](https://github.com/xin-lai/Magicodes.Storage)**| | Magicodes.Storage.AliyunOss.Core |阿里云OSS存储| [![NuGet](https://buildstats.info/nuget/Magicodes.Storage.AliyunOss.Core)](https://www.nuget.org/packages/Magicodes.Storage.AliyunOss.Core) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Storage](https://github.com/xin-lai/Magicodes.Storage)**| | Magicodes.Storage.Local.Core |本地存储| [![NuGet](https://buildstats.info/nuget/Magicodes.Storage.Local.Core)](https://www.nuget.org/packages/Magicodes.Storage.Local.Core) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Storage](https://github.com/xin-lai/Magicodes.Storage)**| | Magicodes.Storage.Tencent.Core |腾讯云存储| [![NuGet](https://buildstats.info/nuget/Magicodes.Storage.Tencent.Core)](https://www.nuget.org/packages/Magicodes.Storage.Tencent.Core) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Storage](https://github.com/xin-lai/Magicodes.Storage)**| | Magicodes.Storage.Abp.Core | 通用存储ABP模块集成| [![NuGet](https://buildstats.info/nuget/Magicodes.Storage.Abp.Core)](https://www.nuget.org/packages/Magicodes.Storage.Abp.Core) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Storage](https://github.com/xin-lai/Magicodes.Storage)**| | Magicodes.WeChat.SDK.Core |微信SDK | [![NuGet](https://buildstats.info/nuget/Magicodes.WeChat.SDK.Core)](https://www.nuget.org/packages/Magicodes.WeChat.SDK.Core) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.WeChat.SDK](https://github.com/xin-lai/Magicodes.WeChat.SDK)**| | Magicodes.SwaggerUI |SwaggerUI API快速配置和分组| [![NuGet](https://buildstats.info/nuget/Magicodes.SwaggerUI)](https://www.nuget.org/packages/Magicodes.SwaggerUI) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.SwaggerUI](https://github.com/xin-lai/Magicodes.SwaggerUI)**| | Magicodes.Pay.Alipay |支付宝支付库| [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Alipay)](https://www.nuget.org/packages/Magicodes.Pay.Alipay) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Notify |支付通用回调库| [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Notify)](https://www.nuget.org/packages/Magicodes.Pay.Notify) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Wxpay |微信支付库| [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Wxpay)](https://www.nuget.org/packages/Magicodes.Pay.Wxpay) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Alipay.Global |国际支付宝支付库 | [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Alipay.Global)](https://www.nuget.org/packages/Magicodes.Pay.Alipay.Global) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Allinpay | 通联支付库 | [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Allinpay)](https://www.nuget.org/packages/Magicodes.Pay.Allinpay) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Abp | ABP 支付通用封装库| [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Abp)](https://www.nuget.org/packages/Magicodes.Pay.Abp) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Abp.Allinpay |ABP 通联支付模块| [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Abp.Allinpay)](https://www.nuget.org/packages/Magicodes.Pay.Abp.Allinpay) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Abp.Wxpay | ABP 微信支付模块| [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Abp.Wxpay)](https://www.nuget.org/packages/Magicodes.Pay.Abp.Wxpay) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Alipay.Global | ABP 国际支付宝模块 | [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Alipay.Global)](https://www.nuget.org/packages/Magicodes.Pay.Alipay.Global) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Pay.Alipay | ABP 支付宝模块 | [![NuGet](https://buildstats.info/nuget/Magicodes.Pay.Alipay)](https://www.nuget.org/packages/Magicodes.Pay.Alipay) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.Pay](https://github.com/xin-lai/Magicodes.Pay)**| | Magicodes.Abp.Castle.NLog | ABP Nlog支持模块 | [![NuGet](https://buildstats.info/nuget/Magicodes.Abp.Castle.NLog)](https://www.nuget.org/packages/Magicodes.Abp.Castle.NLog) |[xin-lai](https://github.com/xin-lai)/**[Abp.Castle.NLog](https://github.com/xin-lai/Abp.Castle.NLog)**| | Magicodes.WxMiniProgram.Sdk |微信小程序SDK| [![NuGet](https://buildstats.info/nuget/Magicodes.WxMiniProgram.Sdk)](https://www.nuget.org/packages/Magicodes.WxMiniProgram.Sdk) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.WxMiniProgram.Sdk](https://github.com/xin-lai/Magicodes.WxMiniProgram.Sdk)**| | Magicodes.WxMiniProgram.Sdk.Abp |微信小程序SDK Abp模块| [![NuGet](https://buildstats.info/nuget/Magicodes.WxMiniProgram.Sdk.Abp)](https://www.nuget.org/packages/Magicodes.WxMiniProgram.Sdk.Abp) |[xin-lai](https://github.com/xin-lai)/**[Magicodes.WxMiniProgram.Sdk](https://github.com/xin-lai/Magicodes.WxMiniProgram.Sdk)**| | Magicodes.Dingtalk.SDK |钉钉SDK| [![NuGet](https://buildstats.info/nuget/Magicodes.Dingtalk.SDK)](https://www.nuget.org/packages/Magicodes.Dingtalk.SDK) | [xin-lai](https://github.com/xin-lai)/**[Magicodes.Dingtalk.SDK](https://github.com/xin-lai/Magicodes.Dingtalk.SDK)**| | Magicodes.DynamicSqlApi.Core | 根据SQL自动解析生成动态API | [![NuGet](https://buildstats.info/nuget/Magicodes.DynamicSqlApi.Core)](https://www.nuget.org/packages/Magicodes.DynamicSqlApi.Core) | **[Magicodes.DynamicSqlApi](https://github.com/xin-lai/Magicodes.DynamicSqlApi)** | | Magicodes.DynamicSqlApi.All | 根据SQL自动解析生成动态API | [![NuGet](https://buildstats.info/nuget/Magicodes.DynamicSqlApi.All)](https://www.nuget.org/packages/Magicodes.DynamicSqlApi.All) | **[Magicodes.DynamicSqlApi](https://github.com/xin-lai/Magicodes.DynamicSqlApi)** | | Magicodes.DynamicSqlApi.CsScript |根据SQL自动解析生成动态API | [![NuGet](https://buildstats.info/nuget/Magicodes.DynamicSqlApi.CsScript)](https://www.nuget.org/packages/Magicodes.DynamicSqlApi.CsScript) | **[Magicodes.DynamicSqlApi](https://github.com/xin-lai/Magicodes.DynamicSqlApi)** | | Magicodes.DynamicSqlApi.Dapper | 根据SQL自动解析生成动态API | [![NuGet](https://buildstats.info/nuget/Magicodes.DynamicSqlApi.Dapper)](https://www.nuget.org/packages/Magicodes.DynamicSqlApi.Dapper) | **[Magicodes.DynamicSqlApi](https://github.com/xin-lai/Magicodes.DynamicSqlApi)** | | Magicodes.DynamicSqlApi.SqlServer | 根据SQL自动解析生成动态API | [![NuGet](https://buildstats.info/nuget/Magicodes.DynamicSqlApi.SqlServer)](https://www.nuget.org/packages/Magicodes.DynamicSqlApi.SqlServer) | **[Magicodes.DynamicSqlApi](https://github.com/xin-lai/Magicodes.DynamicSqlApi)** | ### **注意** - **Excel导入不支持“.xls”文件,即不支持Excel97-2003。** - **如需在Docker中使用,请参阅文档中的《Docker中使用》一节。** - **相关功能均已编写单元测试,在使用的过程中可以参考单元测试。** ### **教程** 1. **[基础教程之导入学生数据](docs/1.基础教程之导入学生数据.md "1.基础教程之导入学生数据") ([点此访问国内文档](https://docs.xin-lai.com/2019/11/26/%E7%BB%84%E4%BB%B6/Magicodes.IE/1.%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%E4%B9%8B%E5%AF%BC%E5%85%A5%E5%AD%A6%E7%94%9F%E6%95%B0%E6%8D%AE/))** 2. **[基础教程之导出Excel](docs/2.基础教程之导出Excel.md "2.基础教程之导出Excel") [(点此访问国内文档)](https://docs.xin-lai.com/2020/02/19/%E7%BB%84%E4%BB%B6/Magicodes.IE/2.Magicodes.IE%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%E4%B9%8B%E5%AF%BC%E5%87%BAExcel/)** 3. **[基础教程之导出Pdf收据](docs/3.基础教程之导出Pdf收据.md "3.基础教程之导出Pdf收据")** [**(点此访问国内文档)**](https://docs.xin-lai.com/2020/02/25/%E7%BB%84%E4%BB%B6/Magicodes.IE/3.Magicodes.IE%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%E4%B9%8B%E5%AF%BC%E5%87%BAPdf/) 4. **[在Docker中使用](docs/4.在Docker中使用.md "4.在Docker中使用")** 5. **动态导出(待补充)** 6. **[多Sheet导入](docs/6.多Sheet导入.md "6.多Sheet导入")** 7. **[Csv导入导出](docs/7.Csv导入导出.md "7.Csv导入导出")** 8. **[Excel图片导入导出](docs/8.Excel图片导入导出.md "8.Excel图片导入导出")** [**(点此访问国内文档)**](https://docs.xin-lai.com/2020/03/16/%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/%E4%BD%BF%E7%94%A8Magicodes.IE.Excel%E5%AE%8C%E6%88%90Excel%E5%9B%BE%E7%89%87%E7%9A%84%E5%AF%BC%E5%85%A5%E5%92%8C%E5%AF%BC%E5%87%BA/) 9. **[Excel模板导出之导出教材订购表](docs/9.Excel模板导出之导出教材订购表.md "9.Excel模板导出之导出教材订购表")([点此访问国内文档](https://docs.xin-lai.com/2020/01/08/%E7%BB%84%E4%BB%B6/Magicodes.IE/7.Excel%E6%A8%A1%E6%9D%BF%E5%AF%BC%E5%87%BA%E4%B9%8B%E5%AF%BC%E5%87%BA%E6%95%99%E6%9D%90%E8%AE%A2%E8%B4%AD%E8%A1%A8/))** 10. **进阶篇之导入导出筛选器(待补充)** 11. **Excel导出多个实体(待补充)** 12. **[.NETCore中通过请求头导出多种格式文件](docs/12.NETCore中通过请求头导出多种格式文件.md)** 13. **[性能测试](docs/13.性能测试.md)** **其他教程见下文或单元测试** **更新历史见下文。** ### **特点** **![总体说明](./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](https://github.com/xin-lai/Magicodes.IE/pull/8 ) ))** - **支持值映射,支持通过“ValueMappingAttribute”特性设置值映射关系。用于生成导入模板的数据验证约束以及进行数据转换。** ```csharp /// /// 性别 /// [ImporterHeader(Name = "性别")] [Required(ErrorMessage = "性别不能为空")] [ValueMapping(text: "男", 0)] [ValueMapping(text: "女", 1)] public Genders Gender { get; set; } ``` - **支持枚举和Bool类型的导入数据验证项的生成,以及相关数据转换** - **枚举默认情况下会自动获取枚举的描述、显示名、名称和值生成数据项** ```csharp /// /// 学生状态 正常、流失、休学、勤工俭学、顶岗实习、毕业、参军 /// public enum StudentStatus { /// /// 正常 /// [Display(Name = "正常")] Normal = 0, /// /// 流失 /// [Description("流水")] PupilsAway = 1, /// /// 休学 /// [Display(Name = "休学")] Suspension = 2, /// /// 勤工俭学 /// [Display(Name = "勤工俭学")] WorkStudy = 3, /// /// 顶岗实习 /// [Display(Name = "顶岗实习")] PostPractice = 4, /// /// 毕业 /// [Display(Name = "毕业")] Graduation = 5, /// /// 参军 /// [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](https://github.com/dotnetcore/Magicodes.IE/issues/63) - **支持在ASP.NET Core Web API 中使用自定义格式化程序导出Excel、Pdf、Csv等内容** [#64](https://github.com/dotnetcore/Magicodes.IE/issues/64) ### FAQ [问题列表](https://github.com/dotnetcore/Magicodes.IE/issues?q=label%3Aquestion) ### **联系我们** > ##### **订阅号** **关注“麦扣聊技术”订阅号可以获得最新文章、教程、文档:** **![](./res/wechat.jpg "麦扣聊技术")** > ##### **QQ群** - **编程交流群<85318032>** - **产品交流群<897857351>** > ##### **文档官网&官方博客** - **文档官网:** - **博客:** > ##### **其他开源库** - **** - **** ### **更新历史** **[更新历史](RELEASE.md)** ## 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](https://opencollective.com/magicodes/contribute)] #### Individuals #### Organizations Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/magicodes/contribute)]