今天我们发布了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. cdm 生成pdm时, 外键的命名规则

    在CDM 生成PDM时,生成的外键默认的规则是:父表名称的前三个字母+"_"+主键 为子类的外键,可是在一些情况,很不习惯用 父表的前三个字母命名,需要用自己的规则来生成外键,此时 ...

  2. Docker学习笔记:在Windows7下安装

    下载 DockerToolbox-19.03.1.exe 进行安装: 安装比较简单,双击运行,点下一步即可,可以勾选自己需要的组件: 安装成功后,桌边会出现三个图标,如下图所示: 点击 Docker ...

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

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

  4. C++之父:精通C++很难,但你一天之内就能学习使用C++

    精通C++听起来好像就是一个笑话.为什么C++比别的语言难学那么多?其实这基本上是因为C++之父Bjarne Stroustrup 说过的一句话"我特别的讨厌语言的设计者把自己的喜好强加给用 ...

  5. C++的四种强制转型形式:

    C++同时提供了四种新的强制转型形式(通常称为新风格的或C++风格的强制转型): const_cast(expression)dynamic_cast(expression)reinterpret_c ...

  6. C/C++宏替换详解

    目录 1. 基本形式 2. 宏展开中的陷阱 3. #undef 4. 宏参数.# 和 ## 1. 基本形式 #define name replacement_text 通常情况下,#define 指令 ...

  7. nginx状态监控统计

    nginx是一款很优秀的web服务器软件,很多地方都有接触和使用到他,大部分的场景压力还没达到需要调优的地步,而调优的难点其实不在于调,而在于各项状态的监控,能够很快的找到资源在什么时候出现问题,调整 ...

  8. Ramnit蠕虫病毒分析和查杀

    Ramnit是一种蠕虫病毒.拥有多种传播方式,不仅可以通过网页进行传播,还可以通过感染计算机内可执行文件进行传播.该病毒在2010年第一次被安全研究者发现,从网络威胁监控中可以看出目前仍然有大量的主机 ...

  9. [原题复现]ByteCTF 2019 –WEB- Boring-Code[无参数rce、绕过filter_var(),等]

    简介  原题复现:  考察知识点:无参数命令执行.绕过filter_var(), preg_match()  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使 ...

  10. CDR魔镜插件是什么,有哪些功能?

    CDR魔镜插件是一款功能强大的CorelDRAW插件,很多CDR用户很早直接就有接触,因其强大的功能性和快速运行的特点被广大用户所喜爱,没有繁琐的选项,无论新人小白,还是制图高手都能够很快的适应,实现 ...