欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET開(kāi)源導(dǎo)入導(dǎo)出庫(kù)Magicodes.IE完成Csv導(dǎo)入導(dǎo)出的方法

 更新時(shí)間:2020年06月04日 09:58:00   作者:HueiFeng  
這篇文章主要介紹了ASP.NET開(kāi)源導(dǎo)入導(dǎo)出庫(kù)Magicodes.IE完成Csv導(dǎo)入導(dǎo)出的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

說(shuō)明

本章主要說(shuō)明如何使用Magicodes.IE.Csv進(jìn)行Csv導(dǎo)入導(dǎo)出.

關(guān)于Magicodes.IE

導(dǎo)入導(dǎo)出通用庫(kù),通過(guò)導(dǎo)入導(dǎo)出DTO模型來(lái)控制導(dǎo)入和導(dǎo)出,支持Excel、Word、Pdf和Html。

GitHub地址:https://github.com/xin-lai/Magicodes.IE

主要步驟

1.安裝包Magicodes.IE.Csv

Install-Package Magicodes.IE.Csv

2.使用Magicodes.IE.Csv導(dǎo)出Csv

通過(guò)如下代碼片段我們將導(dǎo)出的內(nèi)容通過(guò)相應(yīng)的特性做出相應(yīng)的處理.

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 = "數(shù)值", Format = "#,##0")]
    public decimal Number { get; set; }
    [ExporterHeader(DisplayName = "名稱", IsAutoFit = true)]
    public string Name { get; set; }

    /// <summary>
    /// 時(shí)間測(cè)試
    /// </summary>
    [ExporterHeader(DisplayName = "日期1", Format = "yyyy-MM-dd")]
    public DateTime Time1 { get; set; }

    /// <summary>
    /// 時(shí)間測(cè)試
    /// </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>
    /// 長(zhǎng)數(shù)值測(cè)試
    /// </summary>
    [ExporterHeader(DisplayName = "長(zhǎng)數(shù)值", Format = "#,##0")]
    public long LongNo { get; set; }
  }

通過(guò)DTO導(dǎo)出

    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導(dǎo)入Csv

對(duì)于csv導(dǎo)入我們可以通過(guò),ImporterHeader Name屬性去對(duì)應(yīng)我們的Dto屬性.并且可以通過(guò)ValueMapping對(duì)枚舉類型進(jìn)行相關(guān)的映射,并向我們返回相對(duì)應(yīng)的值

    public async Task StudentInfoImporter_Test()
    {
      var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "學(xué)生基礎(chǔ)數(shù)據(jù)導(dǎo)入.csv");
      var import = await Importer.Import<ImportStudentDto>(filePath);
    }
 /// <summary>
  /// 導(dǎo)入學(xué)生數(shù)據(jù)Dto
  /// </summary>
  public class ImportStudentDto
  {
    /// <summary>
    ///   序號(hào)
    /// </summary>
    [ImporterHeader(Name = "序號(hào)")]
    public long SerialNumber { get; set; }

    /// <summary>
    ///   學(xué)籍號(hào)
    /// </summary>
    [ImporterHeader(Name = "學(xué)籍號(hào)")]
    public string StudentCode { get; set; }
    /// <summary>
    ///   姓名
    /// </summary>
    [ImporterHeader(Name = "姓名")]
    public string Name { get; set; }

    /// <summary>
    ///   身份證號(hào)碼
    /// </summary>
    [ImporterHeader(Name = "身份證號(hào)")]
    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>
    ///   家長(zhǎng)姓名
    /// </summary>
    [ImporterHeader(Name = "家長(zhǎng)姓名")]
    public string Guardian { get; set; }

    /// <summary>
    ///   家長(zhǎng)聯(lián)系電話
    /// </summary>
    [ImporterHeader(Name = "家長(zhǎng)聯(lián)系電話")]
    public string GuardianPhone { get; set; }

    /// <summary>
    ///   學(xué)號(hào)
    /// </summary>
    [ImporterHeader(Name = "學(xué)號(hào)")]
    public string StudentNub { get; set; }

    /// <summary>
    ///   宿舍號(hào)
    /// </summary>
    [ImporterHeader(Name = "宿舍號(hào)")]
    public string DormitoryNo { get; set; }

    /// <summary>
    ///   QQ
    /// </summary>
    [ImporterHeader(Name = "QQ號(hào)")]
    public string QQ { get; set; }

    /// <summary>
    ///   民族
    /// </summary>
    [ImporterHeader(Name = "民族")]
    public string Nation { get; set; }

    /// <summary>
    ///   戶口性質(zhì)
    /// </summary>
    [ImporterHeader(Name = "戶口性質(zhì)")]
    public string HouseholdType { get; set; }

    /// <summary>
    ///   聯(lián)系電話
    /// </summary>
    [ImporterHeader(Name = "學(xué)生聯(lián)系電話")]
    public string Phone { get; set; }

    /// <summary>
    ///   狀態(tài)
    ///   測(cè)試可為空的枚舉類型
    /// </summary>
    [ImporterHeader(Name = "狀態(tài)")] 
    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>
    ///   所屬班級(jí)id
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    public Guid ClassId { get; set; }

    /// <summary>
    ///   學(xué)校Id
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    public Guid? SchoolId { get; set; }

    /// <summary>
    ///   校區(qū)Id
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    public Guid? CampusId { get; set; }

    /// <summary>
    ///   專業(yè)Id
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    public Guid? MajorsId { get; set; }

    /// <summary>
    ///   年級(jí)Id
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    public Guid? GradeId { get; set; }
  }

Reference

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

到此這篇關(guān)于ASP.NET開(kāi)源導(dǎo)入導(dǎo)出庫(kù)Magicodes.IE完成Csv導(dǎo)入導(dǎo)出的方法的文章就介紹到這了,更多相關(guān)ASP.NET Csv導(dǎo)入導(dǎo)出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論