1 Star 0 Fork 85

xadlan / Magicodes.IE

forked from magicodes / Magicodes.IE 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Magicodes.IE

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

Magicodes.IE 2.0发布

Magicodes.IE 2.1发布

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

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

最新版本:2.2.7

疯狂的徽章

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. 基础教程之导入学生数据点此访问国内文档

  2. 基础教程之导出Excel (点此访问国内文档)

  3. 基础教程之导出Pdf收据 (点此访问国内文档)

  4. 在Docker中使用

  5. 动态导出(待补充)

  6. 多Sheet导入

  7. Csv导入导出

  8. Excel图片导入导出 (点此访问国内文档)

  9. Excel模板导出之导出教材订购表点此访问国内文档

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

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

  12. .NETCore中通过请求头导出多种格式文件

  13. 性能测试

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

更新历史见下文。

特点

总体说明

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

    • 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图片导入导出

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

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

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

FAQ

问题列表

联系我们

订阅号

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

QQ群
  • 编程交流群<85318032>

  • 产品交流群<897857351>

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

更新历史

更新历史

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

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]

MIT License Copyright (c) 2019 李文强 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf和Html。 展开 收起
C#
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/xadlan/Magicodes.IE.git
git@gitee.com:xadlan/Magicodes.IE.git
xadlan
Magicodes.IE
Magicodes.IE
master

搜索帮助

14c37bed 8189591 565d56ea 8189591