ASP.NET开源导入导出库Magicodes.IE完成Csv导入导出的方法
 更新时间:2020年06月04日 09:58:00   作者:HueiFeng  

这篇文章主要介绍了ASP.NET开源导入导出库Magicodes.IE完成Csv导入导出的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

说明

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

导入导出通用库,通过导入导出DTO模型来控制导入和导出,支持Excel、Word、Pdf和Html。
GitHub地址:github.com/xin-lai/Magicodes.IE
主要步骤

1.安装包Magicodes.IE.Csv

Install-Package Magicodes.IE.Csv

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

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

DisplayName: 显示名称
Format: 格式化
IsIgnore: 是否忽略

public class ExportTestDataWithAttrs
{
[ExporterHeader(DisplayName = “文本”)]
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

github.com/dotnetcore/Magicodes.IE
到此这篇关于ASP.NET开源导入导出库Magicodes.IE完成Csv导入导出的方法的文章就介绍到这了,更多相关ASP.NET Csv导入导出内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

您可能感兴趣的文章:.NET 开源配置组件 AgileConfig的使用简介详解开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)详解最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)详解免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五).NET中开源文档操作组件DocX的介绍与使用基于.NET平台常用的框架和开源程序整理.NET 开源项目Polly的简单介绍

ASP.NET
Csv
导入导出

相关文章
.Net Core官方JWT授权验证的全过程这篇文章主要给大家介绍了关于.Net Core官方JWT授权验证的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2020-12-12
Asp.net的服务器推技术 (Server Push)在以往的和服务器端通信技术中,我们多数使用的是AJAX轮询式访问,也就是在Javascript中控制时间间隔,然后每隔一段时间就访问一次服务器,然后获得数据或通知。但是这种轮询方式的访问有90%是在做无用功。 2010-01-01
indexof 和 indexofany的区别介绍indexof 和 indexofany的区别介绍,需要的朋友可以参考一下 2013-03-03
.net压缩功能实现方法这篇文章主要介绍了.net压缩功能实现方法,需要的朋友可以参考下 2014-02-02
Asp.net GridView使用大全(分页实现)关于GridView的使用涉及很多,网络上零零散散的有一些,为了让自己使用方便,也为了大家能很好的学习与工作,我把网络上的GridView使用方法收集了一些 2013-04-04
获取远程网页的内容之二(downmoon原创)获取远程网页的内容之二(downmoon原创)… 2007-03-03
.NET Core 3.0 可回收程序集加载上下文的实现这篇文章主要介绍了.NET Core 3.0 可回收程序集加载上下文的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2019-06-06
通过Web Service实现IP地址查询功能的示例下面小编就为大家分享一篇通过Web Service实现IP地址查询功能的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2017-12-12
.NET Core中使用HttpClient的正确姿势使用HttpClient可以很方便的请求Web API,下面这篇文章主要给大家介绍了关于.NET Core中使用HttpClient的正确姿势,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起学习学习吧 2018-09-09
去除HTML标签删除HTML示例代码这篇文章主要介绍了如何去除HTML标签、删除HTML。示例中使用到了一个正则,直接使用就可以了 2014-06-06

最新评论

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。