今天我们发布了2.5版本,这当然也离不开大家对Magicodes.IE的支持,今天我也是跟往常一样列举了该版本一些重要的更新内容。

当然也要说一下,在这个版本中我们设计了全新的LOGO

Excel导出

  • Excel导出支持HeaderRowIndex #164

ExcelExporterAttribute导出特性类中添加HeaderRowIndex属性,方便导出时去指定从第一行开始导出。

  • 增加Excel枚举导出对DescriptionAttribute的支持 #168

在导出枚举类型时起初我们可以通过ValueMapping和导出枚举本身的字符串名称,在现在我们可以通过

DescriptionAttribute

DisplayAttribute,

DisplayNameAttribute

实现Text值导出

enum Sex
{
/// <summary>
/// 男
/// </summary>
[Description("男")]
boy = 1,
/// <summary>
/// 女
/// </summary>
[Description("女")]
girl = 2
}
  • TableStyle修改为枚举类型

在这之前我们将TableStyle属性放在了ExporterAttribute基础特性中,起初我们的TableStyle属性为字符串,

但是带给了我们不必要的麻烦,很难让使用者去查找这些样式名称,所以此处我们将其换成了枚举类型,方便使用者从列表中

进行查找相关样式

  [ExcelExporter(Name = "测试", TableStyle = TableStyles.Light10)]

Excel导入

  • Excel生成导入模板支持内置数据验证#167

对于内置数据验证的支持可通过IsInterValidation属性开启,并且需要注意的是仅

支持MaxLengthAttribute

MinLengthAttribute

StringLengthAttribute

RangeAttribute

支持对内置数据验证的开启操作。

支持对输入提示的展示操作。

示例代码如下所示:

    public class GenerateStudentImportSheetDataValidationDto
{
/// <summary>
/// 序号
/// </summary>
[ImporterHeader(Name = "序号", IsInterValidation = true)]
[Range(minimum: 0, maximum: 20, ErrorMessage = "序号最大为20")]
public long SerialNumber { get; set; } /// <summary>
/// 学籍号
/// </summary>
[ImporterHeader(Name = "学籍号", IsAllowRepeat = false, IsInterValidation = true)]
[MaxLength(30, ErrorMessage = "学籍号字数超出最大限制,请修改!")]
public string StudentCode { get; set; } /// <summary>
/// 姓名
/// </summary>
[ImporterHeader(Name = "姓名")]
[Required(ErrorMessage = "学生姓名不能为空")]
[MaxLength(50, ErrorMessage = "名称字数超出最大限制,请修改!")]
public string Name { get; set; } /// <summary>
/// 年龄
/// </summary>
[ImporterHeader(Name = "年龄", IsInterValidation = true)]
[Range(minimum: 18, maximum: 20, ErrorMessage = "年龄范围需要在18-20岁哦")]
public int Age { get; set; } /// <summary>
/// MinTest
/// </summary>
[ImporterHeader(Name = "MinTest", IsInterValidation = true)]
[MinLength(5, ErrorMessage = "最小长度为5哦")]
public string MinTest { get; set; } /// <summary>
/// 忽略类型
/// </summary>
[ImporterHeader(Name = "忽略类型", IsInterValidation = true)]
[Range(minimum: 18, maximum: 20, ErrorMessage = "年龄范围需要在18-20岁哦", ErrorMessageResourceType = typeof(string))]
public int IgnoreType { get; set; } [ImporterHeader(Name = "出生日期", IsInterValidation = true, ShowInputMessage = "输入日期")]
[Range(typeof(DateTime), minimum: "2020-10-20", maximum: "2020-10-24", ErrorMessage = "日期范围超出了哦")]
public DateTime Birthday { get; set; }
}

注意:数据范围验证仅支持DateTime和int类型

  • 导入对ColumnIndex的支持#198

导入功能支持ColumnIndex可以通过去指定某一列数据列,这样在复杂的列名时结构时,我们也可以直接

轻松的应对

[ImporterHeader(Name = "年龄", ColumnIndex = 3)]
public int? Age { get; set; }

欢迎扫码加入微信群

https://github.com/dotnetcore/Magicodes.IE

.NET 开源导入导出库 Magicodes.IE 2.5发布的更多相关文章

  1. .NET Core开源导入导出库 Magicodes.IE 2.3发布

    在2.3这一版本的更新中,我们迎来了众多的使用者.贡献者,在这个里程碑中我们也添加并修复了一些功能.对于新特点的功能我将在下面进行详细的描述,当然也欢迎更多的人可以加入进来,再或者也很期待大家来提is ...

  2. ASP.NET 开源导入导出库Magicodes.IE 完成Excel图片导入导出

    Magicodes.IE Excel图片导入导出 为了更好的根据实际功能来迭代,从2.2的里程碑规划开始,我们将结合社区的建议和意见来进行迭代,您可以点此链接来提交您的意见和建议: https://g ...

  3. ASP.NET 开源导入导出库Magicodes.IE 完成Csv导入导出

    Magicodes.IE Csv导入导出 说明 本章主要说明如何使用Magicodes.IE.Csv进行Csv导入导出. 主要步骤 1.安装包Magicodes.IE.Csv Install-Pack ...

  4. 开源导入导出库Magicodes.IE 导出教程

    要点 导出特性 如何导出Excel表头 如何导出数据.如何进行数据的切割.如何使用筛选器 导出特性 ExporterAttribute Name: 名称(当前Sheet 名称) HeaderFontS ...

  5. ASP.NET 开源导入导出库Magicodes.IE 导出Pdf教程

    基础教程之导出Pdf收据 说明 本教程主要说明如何使用Magicodes.IE.Pdf完成Pdf收据导出 要点 导出PDF数据 自定义PDF模板 导出单据 如何批量导出单据 导出特性 PdfExpor ...

  6. ASP.NET 开源导入导出库Magicodes.IE 多Sheet导入教程

    多Sheet导入教程 说明 本教程主要说明如何使用Magicodes.IE.Excel完成多个Sheet数据的Excel导入. 要点 多个相同格式的Sheet数据导入 多个不同格式的Sheet数据导入 ...

  7. 开源导入导出库Magicodes.IE 多sheet导入教程

    原文作者:tanyongzheng 多Sheet导入教程 说明 本教程主要说明如何使用Magicodes.IE.Excel完成多个Sheet数据的Excel导入. 要点 多个相同格式的Sheet数据导 ...

  8. Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库

    在2.3这一版本的更新中,我们迎来了众多的使用者.贡献者,在这个里程碑中我们也添加并修复了一些功能.对于新特点的功能我将在下面进行详细的描述,当然也欢迎更多的人可以加入进来,再或者也很期待大家来提is ...

  9. 开源导入导出通用库Magicodes.ExporterAndImporter发布

    导入导出通用库 Magicodes.ExporterAndImporter为心莱团队封装的导入导出通用库,并且仍在跟随项目不断地打磨. GitHub地址: https://github.com/xin ...

随机推荐

  1. Redis学习(一)——初识Redis

    1.Redis是什么 1)REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. 2)Redis的特点 Red ...

  2. 水题挑战6: CF1444A DIvision

    A. Division time limit per test1 second memory limit per test512 megabytes inputstandard input outpu ...

  3. 《Python3反爬虫原理与绕过实战》作者韦世东

    可以用(k1,k2)-k1来设置,如果有重复的key,则保留key1,舍弃key2/打印appleMap{1=Apple{id=1,name=苹果1,money=3.25,num=10},2=Appl ...

  4. Java 架构学习图谱

  5. JWT 实战

    上一篇我们讲解了 JWT 的基本原理和结构 你了解JWT吗?,接下来我们具体实战一下! 1. 引入依赖 <!--引入jwt--> <dependency> <groupI ...

  6. Hibernate初识

    1. 持久化框架 狭义的概念:数据存储在物理存储介质不会丢失. 广义的概念:对数据的crud操作都叫持久化. 加载:hibernate的概念,数据从数据库中加载到session. 2. ORM(obj ...

  7. [原题复现+审计][RoarCTF 2019]Easy Calc(http协议走私、php字符串解析漏洞)

    简介  原题复现:  考察知识点:http协议走私.php字符串解析漏洞  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到 ...

  8. workerman搭建聊天室

    首先,先打开官网手册   http://doc.workerman.net/ 根据手册里安装里的提示,完成环境检测,和安装对应的扩展,并把对应的WorkerMan代码包下载解压至根目录 在根目录下创建 ...

  9. Python学习第三天 --- 分支、循环、条件、枚举

    1.表达式: 表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列. 2.表达式的优先级: 3.python的注释: #单行注释 ''' 多行注释 ''' ...

  10. 如何卸载MathType 7?

    作为好用的公式编辑器,一般情况下是不会将其从电脑上卸载的,但是当电脑负荷过多,导致电脑运行缓慢时,就需要考虑卸载一些软件,本节就来学习卸载MathType 7的方法. 具体操作步骤如下: 1.打开控制 ...