说明

本章主要说明如何使用Magicodes.IE.Csv进行Csv导入导出.

主要步骤

1.安装包Magicodes.IE.Csv

Install-Package Magicodes.IE.Csv

2.使用Magicodes.IE.Csv导出Csv

通过如下代码片段我们将导出的内容通过相应的特性做出相应的处理.

ExporterHeaderAttribute

  • DisplayName:显示名称

  • Format:格式化

  • IsIgnore:是否忽略

public class ExportTestDataWithAttrs{[ExporterHeader(DisplayName = "加粗文本", IsBold = true)]public string Text { get; set; }[ExporterHeader(DisplayName = "普通文本")] public string Text2 { get; set; }[ExporterHeader(DisplayName = "忽略", IsIgnore = true)]public string Text3 { get; set; }[ExporterHeader(DisplayName = "数值", Format = "#,##0")]public decimal Number { get; set; }[ExporterHeader(DisplayName = "名称", IsAutoFit = true)]public string Name { get; set; }/// <summary>/// 时间测试/// </summary>[ExporterHeader(DisplayName = "日期1", Format = "yyyy-MM-dd")]public DateTime Time1 { get; set; }/// <summary>/// 时间测试/// </summary>[ExporterHeader(DisplayName = "日期2", Format = "yyyy-MM-dd HH:mm:ss")]public DateTime? Time2 { get; set; }public DateTime Time3 { get; set; }public DateTime Time4 { get; set; }/// <summary>/// 长数值测试/// </summary>[ExporterHeader(DisplayName = "长数值", Format = "#,##0")]public long LongNo { get; set; }}

通过DTO导出

public async Task ExportHeaderAsByteArray_Test(){IExporter exporter = new CsvExporter();var filePath = GetTestFilePath($"{nameof(ExportHeaderAsByteArray_Test)}.csv");DeleteFile(filePath);var result = await exporter.ExportHeaderAsByteArray(GenFu.GenFu.New<ExportTestDataWithAttrs>());}

3.使用Magicodes.IE.Csv导入Csv

对于csv导入我们可以通过,ImporterHeader Name属性去对应我们的Dto属性.并且可以通过ValueMapping对枚举类型进行相关的映射,并向我们返回相对应的值

public async Task StudentInfoImporter_Test(){var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "学生基础数据导入.csv");var import = await Importer.Import<ImportStudentDto>(filePath);}
/// <summary>/// 导入学生数据Dto/// </summary>public class ImportStudentDto{/// <summary>///     序号/// </summary>[ImporterHeader(Name = "序号")]public long SerialNumber { get; set; }/// <summary>///     学籍号/// </summary>[ImporterHeader(Name = "学籍号")]public string StudentCode { get; set; }/// <summary>///     姓名/// </summary>[ImporterHeader(Name = "姓名")]public string Name { get; set; }/// <summary>///     身份证号码/// </summary>[ImporterHeader(Name = "身份证号")]public string IdCard { get; set; }/// <summary>///     性别/// </summary>[ImporterHeader(Name = "性别")][ValueMapping("男", 0)][ValueMapping("女", 1)]public Genders Gender { get; set; }/// <summary>///     家庭地址/// </summary>[ImporterHeader(Name = "家庭住址")]public string Address { get; set; }/// <summary>///     家长姓名/// </summary>[ImporterHeader(Name = "家长姓名")]public string Guardian { get; set; }/// <summary>///     家长联系电话/// </summary>[ImporterHeader(Name = "家长联系电话")]public string GuardianPhone { get; set; }/// <summary>///     学号/// </summary>[ImporterHeader(Name = "学号")]public string StudentNub { get; set; }/// <summary>///     宿舍号/// </summary>[ImporterHeader(Name = "宿舍号")]public string DormitoryNo { get; set; }/// <summary>///     QQ/// </summary>[ImporterHeader(Name = "QQ号")]public string QQ { get; set; }/// <summary>///     民族/// </summary>[ImporterHeader(Name = "民族")]public string Nation { get; set; }/// <summary>///     户口性质/// </summary>[ImporterHeader(Name = "户口性质")]public string HouseholdType { get; set; }/// <summary>///     联系电话/// </summary>[ImporterHeader(Name = "学生联系电话")]public string Phone { get; set; }/// <summary>///     状态///     测试可为空的枚举类型/// </summary>[ImporterHeader(Name = "状态")]public StudentStatus? Status { get; set; }/// <summary>///     备注/// </summary>[ImporterHeader(Name = "备注")]public string Remark { get; set; }/// <summary>///     是否住校(宿舍)/// </summary>[ImporterHeader(IsIgnore = true)]public bool? IsBoarding { get; set; }/// <summary>///     所属班级id/// </summary>[ImporterHeader(IsIgnore = true)]public Guid ClassId { get; set; }/// <summary>///     学校Id/// </summary>[ImporterHeader(IsIgnore = true)]public Guid? SchoolId { get; set; }/// <summary>///     校区Id/// </summary>[ImporterHeader(IsIgnore = true)]public Guid? CampusId { get; set; }/// <summary>///     专业Id/// </summary>[ImporterHeader(IsIgnore = true)]public Guid? MajorsId { get; set; }/// <summary>///     年级Id/// </summary>[ImporterHeader(IsIgnore = true)]public Guid? GradeId { get; set; }}

Reference

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

层出不穷的新技术对程序员来说既是挑战也是机遇,固守自己的一亩三分地迟早落于他人,是时候跳出来看看行业内的发展新趋势,参与2020 DAMS中国数据智能管理峰会是个不错的选择,其中前沿技术议题包括:

《当5G遇上金融,看电信甜橙金融如何创新?》中国电信甜橙金融技术创新中心总经理 张小虎

《智能制造的数字化基础的设计与演进》长城汽车集团云计算总监 张小斌

《平安银行“传统+互联网”混合CMDB及运营中台实践》平安银行运营开发负责人 徐大蔚

《中信银行的DevOps实践》中信银行DevOps实施牵头人 李红涛

8月7日,一起在上海洞悉技术发展新趋势,逆袭码农人生吧!

转载是一种动力 分享是一种美德

如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

文档官网:docs.xin-lai.com

QQ群:

编程交流群<85318032>

产品交流群<897857351>

Magicodes.IE Csv导入导出相关推荐

  1. Magicodes.IE之导入导出筛选器

    总体设计 Magicodes.IE是一个导入导出通用库,支持Dto导入导出以及动态导出,支持Excel.Word.Pdf.Csv和Html.在本篇教程,笔者将讲述如何使用Magicodes.IE的导入 ...

  2. Magicodes.IE 在100万数据量下导入导出性能测试

    原文作者:HueiFeng 前言 目前Magicodes.IE更新到了2.2.3,感谢大家的支持,同时建议大家在使用过程中如果遇到一些问题或者说需要一些额外的功能可以直接提issues,当然更建议大家 ...

  3. Java CSV操作(导出和导入)

    CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件中,数据"栏"以逗 ...

  4. ABP Vnext中使用Magicodes.IE导入导出

    文章目录 ABP Vnext中使用Magicodes.IE导入导出 1.Moudle中配置 2.构造函数注入 3.导出 3.1 导出实体 3.2 导出 4.导入 4.1 导入实体 4.2 导入 5.[ ...

  5. Magicodes.IE之快速导出Excel

    前言 总是有很多朋友咨询Magicodes.IE如何基于ASP.NET Core导出Excel,出于从框架的体验和易用性的角度,Magicodes.IE决定对Excel的导出进行独立封装,以便于大家更 ...

  6. 【C】@程序员,我们送给你一个成熟的Excel导入导出组件

    程序员的显著特点 有一天跟一位同事跟我闲聊,讨论起过去若干年软件行业的感受,他问了个问题:你觉得一个好的软件工程师最显著的特点是什么?我想了一会,说:大概是坐得住吧. 某种意义上来说,在互联网技术飞速 ...

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

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

  8. ie如何导入html文件类型,Magicodes.IE: 导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf和Html。...

    Magicodes.IE 导入导出通用库,支持Dto导入导出以及动态导出,支持Excel.Word.Pdf和Html. 疯狂的徽章 GitHub Azure DevOps Build Status: ...

  9. mysql 导入导出 csv_mysql 导出导入数据 -csv

    MySql数据库导出csv文件命令: mysql> select first_name,last_name,email from account into outfile 'e://output ...

最新文章

  1. 按值传递按引用传递按地址传递
  2. Objective-C中的@property和@synthesize用法
  3. c语言明解课后答案,明解C语言 中级篇 第一章答案
  4. [css] 使用flex实现三栏布局,两边固定,中间自适应
  5. 15 CT04创建特性程序DUMP解决方法
  6. 论文盘点:CVPR 2018 Top 20,华人发明的SENet居首!
  7. 2016版系统集成项目管理工程师考试题型举例
  8. 2.FactoryMethod-工厂方法模式
  9. 数据分析实战(三) 因子分析模型挖掘CSDN优质博主
  10. C语言面试题 - 结构体对齐
  11. matlab 无法保存.m文件
  12. PDD卖百度网盘超级会员,是怎么做到销量10万+的?
  13. [NN]前向神经网络的tf.keras详细实现教学
  14. js写小游戏(打字母)
  15. Python文字转换语音,让你的文字会「说话」,抠脚大汉秒变撒娇萌妹
  16. 金蝶实习(十一)——简单的二次开发
  17. 集群(1)---集群的概念
  18. 线性探测法和平方探测法 - 哈希表 - 完整代码
  19. FTP服务器有时候连接超时的问题
  20. 文献阅读系列-2|TBC-Net: A real-time detector for infrared small

热门文章

  1. HDU 5238 Calculator 线段树 中国剩余定理
  2. Delphi中的容器类(3)
  3. zune linux_快速提示:在出售Zune HD之前,先擦除所有内容
  4. oracle 分组后取每组第一条数据
  5. 海尔联手软银机器人,进军服务机器人领域
  6. 7z压缩文档的powershell示例
  7. 免费都不管用,Win10升级在中国怎么就这么难?
  8. OutLook2016修改注册表迁移.ost文件数据
  9. PHP文件 字符集编码!
  10. SqlDataReader对象的NextResult方法读取存储过程多个结果集