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
