Magicodes.IE Csv导入导出
說明
本章主要說明如何使用Magicodes.IE.Csv進行Csv導入導出.
主要步驟
1.安裝包Magicodes.IE.Csv
Install-Package Magicodes.IE.Csv2.使用Magicodes.IE.Csv導出Csv
通過如下代碼片段我們將導出的內容通過相應的特性做出相應的處理.
ExporterHeaderAttribute
- DisplayName:顯示名稱 
- Format:格式化 
- IsIgnore:是否忽略 
通過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导入导出的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 一些有关使用EF的错误用法展开的思考
- 下一篇: [最全操作指南] 在线六个项目全部迁移L
