使用Csvhelper讀取CSV文件某行某列數據


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsvHelper;
using CsvHelper.Configuration;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            //檢測原文件編碼的形式讀入,或默認的

            StreamReader SRFile = new StreamReader("C:\\Users\\XXX\\Desktop\\Rfid.csv", Encoding.Default);
            var csv = new CsvReader(SRFile);

            csv.Configuration.RegisterClassMap<RfidMap>();  //配置匹配類

            //把 數據映射到Rfid
            
            var records = csv.GetRecords<Rfid>().ToList();
            //輸出讀取到的csv的值
            int n = 1;
            foreach (var r in records)
            {
              
                if (n == 2)//設置要讀取的那一行;例如第二行
                {
                    string date = r.NUM;  //直接獲取字段
                    Console.WriteLine(date);
                    break;//跳出循環
                }
                n=++;
            }
            SRFile.Close();  //關閉文件
            Console.ReadKey();
        }
    }
    //類名(Rfid)需要和csv的文件名相同
    public class Rfid
    {
        //字段名需要和csv的表頭名稱相同
        public string NUM { get; set; }
        public string DATE { get; set; }
        public string RFID { get; set; }
    }
    //當字段名為中文時,那么可以定義一個映射匹配類,CSVHelper是自動根據你的類來自動映射匹配的
    public sealed class RfidMap : ClassMap<Rfid>
    {
        RfidMap()
        {
            Map(m => m.NUM).Name("序號");  //使用文件列名稱指定映射
            Map(m => m.DATE).Name("時間");
            Map(m => m.RFID).Name("RFID標簽UID");
        }
    }

}
可能需要下載csvhelper庫;在VS工具—庫程序包管理器—程序包管理器控制台,輸入Install-Package CsvHelper,如果出錯安裝不了,很可能是版本不對,在https://www.nuget.org/packages/CsvHelper/中尋找合適版本,如Install-Package CsvHelper -Version 9.0.0即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM