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

publicclassExportTestDataWithAttrs{ [ExporterHeader(DisplayName ="文本")]publicstringText {get;set; } [ExporterHeader(DisplayName ="普通文本")]publicstringText2 {get;set; } [ExporterHeader(DisplayName ="忽略", IsIgnore = true)]publicstringText3 {get;set; } [ExporterHeader(DisplayName ="数值", Format ="#,##0")]publicdecimalNumber {get;set; } [ExporterHeader(DisplayName ="名称", IsAutoFit = true)]publicstringName {get;set; }///<summary>///时间测试///</summary>[ExporterHeader(DisplayName ="日期1", Format ="yyyy-MM-dd")]publicDateTime Time1 {get;set; }///<summary>///时间测试///</summary>[ExporterHeader(DisplayName ="日期2", Format ="yyyy-MM-dd HH:mm:ss")]publicDateTime? Time2 {get;set; }publicDateTime Time3 {get;set; }publicDateTime Time4 {get;set; }///<summary>///长数值测试///</summary>[ExporterHeader(DisplayName ="长数值", Format ="#,##0")]publiclongLongNo {get;set; } }

通过DTO导出

publicasyncTaskExportHeaderAsByteArray_Test(){            IExporter exporter =newCsvExporter();varfilePath = GetTestFilePath($"{nameof(ExportHeaderAsByteArray_Test)}.csv");            DeleteFile(filePath);varresult =awaitexporter.ExportHeaderAsByteArray(GenFu.GenFu.New());        }

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

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

publicasyncTaskStudentInfoImporter_Test(){varfilePath = Path.Combine(Directory.GetCurrentDirectory(),"TestFiles","Import","学生基础数据导入.csv");varimport =awaitImporter.Import(filePath);        }

///<summary>///导入学生数据Dto///</summary>publicclassImportStudentDto{///<summary>///序号///</summary>[ImporterHeader(Name ="序号")]publiclongSerialNumber {get;set; }///<summary>///学籍号///</summary>[ImporterHeader(Name ="学籍号")]publicstringStudentCode {get;set; }///<summary>///姓名///</summary>[ImporterHeader(Name ="姓名")]publicstringName {get;set; }///<summary>///身份证号码///</summary>[ImporterHeader(Name ="身份证号")]publicstringIdCard {get;set; }///<summary>///性别///</summary>[ImporterHeader(Name ="性别")]        [ValueMapping("男", 0)]        [ValueMapping("女", 1)]publicGenders Gender {get;set; }///<summary>///家庭地址///</summary>[ImporterHeader(Name ="家庭住址")]publicstringAddress {get;set; }///<summary>///家长姓名///</summary>[ImporterHeader(Name ="家长姓名")]publicstringGuardian {get;set; }///<summary>///家长联系电话///</summary>[ImporterHeader(Name ="家长联系电话")]publicstringGuardianPhone {get;set; }///<summary>///学号///</summary>[ImporterHeader(Name ="学号")]publicstringStudentNub {get;set; }///<summary>///宿舍号///</summary>[ImporterHeader(Name ="宿舍号")]publicstringDormitoryNo {get;set; }///<summary>///QQ///</summary>[ImporterHeader(Name ="QQ号")]publicstringQQ {get;set; }///<summary>///民族///</summary>[ImporterHeader(Name ="民族")]publicstringNation {get;set; }///<summary>///户口性质///</summary>[ImporterHeader(Name ="户口性质")]publicstringHouseholdType {get;set; }///<summary>///联系电话///</summary>[ImporterHeader(Name ="学生联系电话")]publicstringPhone {get;set; }///<summary>///状态///测试可为空的枚举类型///</summary>[ImporterHeader(Name ="状态")]publicStudentStatus? Status {get;set; }///<summary>///备注///</summary>[ImporterHeader(Name ="备注")]publicstringRemark {get;set; }///<summary>///是否住校(宿舍)///</summary>[ImporterHeader(IsIgnore = true)]publicbool? IsBoarding {get;set; }///<summary>///所属班级id///</summary>[ImporterHeader(IsIgnore = true)]publicGuid ClassId {get;set; }///<summary>///学校Id///</summary>[ImporterHeader(IsIgnore = true)]publicGuid? SchoolId {get;set; }///<summary>///校区Id///</summary>[ImporterHeader(IsIgnore = true)]publicGuid? CampusId {get;set; }///<summary>///专业Id///</summary>[ImporterHeader(IsIgnore = true)]publicGuid? MajorsId {get;set; }///<summary>///年级Id///</summary>[ImporterHeader(IsIgnore = true)]publicGuid? GradeId {get;set; }    }


深圳网站建设www.sz886.com

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。