.NET使用CsvHelper快速讀取和寫入CSV文件的操作方法
前言
在日常開發(fā)中使用CSV文件進(jìn)行數(shù)據(jù)導(dǎo)入和導(dǎo)出、數(shù)據(jù)交換是非常常見的需求,今天我們來講講在.NET中如何使用CsvHelper
這個開源庫快速實現(xiàn)CSV文件讀取和寫入。
CsvHelper類庫介紹
CsvHelper是一個.NET開源、快速、靈活、高度可配置、易于使用的用于讀取和寫入CSV文件的類庫。
CsvHelper類庫特點
什么是 .csv 文件?
.csv 文件是一種用于存儲表格數(shù)據(jù)的文本文件,CSV 是 "Comma-Separated Values" 的縮寫,意思是 "逗號分隔值"。CSV 文件是一個存儲表格和電子表格信息的純文本文件,其內(nèi)容通常是一個文本、數(shù)字或日期的表格。CSV 文件可以使用以表格形式存儲數(shù)據(jù)的程序輕松導(dǎo)入和導(dǎo)出。
創(chuàng)建控制臺應(yīng)用
創(chuàng)建一個名為:CsvHelperExercise
的.NET 8控制臺應(yīng)用。
安裝CsvHelper類庫
NuGet包管理器中搜索:CsvHelper
,點擊安裝!
定義CSV文件讀取和寫入的對象
public class StudentInfo { /// <summary> /// 學(xué)生學(xué)號 /// </summary> public int ID { get; set; } /// <summary> /// 學(xué)生姓名 /// </summary> public string Name { get; set; } /// <summary> /// 學(xué)生年齡 /// </summary> public int Age { get; set; } /// <summary> /// 班級 /// </summary> public string Class { get; set; } /// <summary> /// 性別 /// </summary> public string Gender { get; set; } /// <summary> /// 住址 /// </summary> public string Address { get; set; } }
寫入CSV文件數(shù)據(jù)
static void Main(string[] args) { var students = new List<StudentInfo> { new StudentInfo { ID = 1, Name = "張三", Age = 20, Class = "終極一班", Gender = "男", Address = "北京市東城區(qū)" }, new StudentInfo { ID = 2, Name = "李四", Age = 21, Class = "終極一班", Gender = "女", Address = "上海市黃浦區(qū)" }, new StudentInfo { ID = 3, Name = "王五", Age = 22, Class = "終極一班", Gender = "男", Address = "廣州市越秀區(qū)" }, new StudentInfo { ID = 4, Name = "趙六", Age = 20, Class = "終極二班", Gender = "女", Address = "深圳市福田區(qū)" }, new StudentInfo { ID = 5, Name = "孫七", Age = 23, Class = "終極二班", Gender = "男", Address = "杭州市西湖區(qū)" }, new StudentInfo { ID = 6, Name = "周八", Age = 24, Class = "終極二班", Gender = "女", Address = "南京市玄武區(qū)" }, new StudentInfo { ID = 7, Name = "吳九", Age = 22, Class = "終極二班", Gender = "男", Address = "成都市錦江區(qū)" }, new StudentInfo { ID = 8, Name = "小袁", Age = 21, Class = "終極三班", Gender = "女", Address = "重慶市渝中區(qū)" }, new StudentInfo { ID = 9, Name = "大姚", Age = 20, Class = "終極三班", Gender = "男", Address = "武漢市武昌區(qū)" }, new StudentInfo { ID = 10, Name = "追逐時光者", Age = 23, Class = "終極三班", Gender = "女", Address = "長沙市天心區(qū)" } }; //寫入CSV文件數(shù)據(jù) using var writer = new StreamWriter(@".\StudentInfoFile.csv"); using var csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture); csvWriter.WriteRecords(students); }
讀取CSV文件數(shù)據(jù)
快速讀取上面寫入到StudentInfoFile.csv
中的數(shù)據(jù)。
static void Main(string[] args) { //讀取CSV文件數(shù)據(jù) using var reader = new StreamReader(@".\StudentInfoFile.csv"); using var csvReader = new CsvReader(reader, CultureInfo.InvariantCulture); var getStudentInfos = csvReader.GetRecords<StudentInfo>().ToList(); }
項目源碼地址
更多項目實用功能和特性歡迎前往項目開源地址查看??,別忘了給項目一個Star支持??。
- CsvHelper類庫開源地址:https://github.com/JoshClose/CsvHelper
- 文章示例源碼地址:https://github.com/YSGStudyHards/DotNetExercises/tree/master/CsvHelperExercise
優(yōu)秀項目和框架精選
該項目已收錄到C#/.NET/.NET Core優(yōu)秀項目和框架精選中,關(guān)注優(yōu)秀項目和框架精選能讓你及時了解C#、.NET和.NET Core領(lǐng)域的最新動態(tài)和最佳實踐,提高開發(fā)工作效率和質(zhì)量??右淹冢瑲g迎大家踴躍提交PR推薦或自薦(讓優(yōu)秀的項目和框架不被埋沒??)。
https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
參考文章
https://www.freecodecamp.org/chinese/news/what-is-a-csv-file-and-how-to-open-the-csv-file-format/
- DotNetGuide技術(shù)社區(qū)交流群DotNetGuide技術(shù)社區(qū)是一個面向.NET開發(fā)者的開源技術(shù)社區(qū),旨在為開發(fā)者們提供全面的C#/.NET/.NET Core相關(guān)學(xué)習(xí)資料、技術(shù)分享和咨詢、項目框架推薦、求職和招聘資訊、以及解決問題的平臺。
- 在DotNetGuide技術(shù)社區(qū)中,開發(fā)者們可以分享自己的技術(shù)文章、項目經(jīng)驗、學(xué)習(xí)心得、遇到的疑難技術(shù)問題以及解決方案,并且還有機(jī)會結(jié)識志同道合的開發(fā)者。
- 我們致力于構(gòu)建一個積極向上、和諧友善的.NET技術(shù)交流平臺。無論您是初學(xué)者還是有豐富經(jīng)驗的開發(fā)者,我們都希望能為您提供更多的價值和成長機(jī)會。
到此這篇關(guān)于.NET使用CsvHelper快速讀取和寫入CSV文件的文章就介紹到這了,更多相關(guān).NET使用CsvHelper快速讀取和寫入CSV文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
DropDownList綁定選擇數(shù)據(jù)報錯提示異常解決方案
DropDownList控件在綁定選擇數(shù)據(jù)時提示報錯異常詳細(xì)信息為:有一個無效 SelectedValue,因為它不在項目列表中,應(yīng)該有很多新手朋友們遇到過吧,本文將給予解決方法,感興趣的朋友可以了解下,希望本對你有所幫助2013-01-01進(jìn)度條在.net導(dǎo)入Excel時的應(yīng)用實例
這篇文章主要介紹了進(jìn)度條在.net導(dǎo)入Excel時的應(yīng)用,以實例形式講述了.net導(dǎo)入Excel時根據(jù)頁面情況顯示進(jìn)度條的實現(xiàn)方法,非常具有實用價值,需要的朋友可以參考下2014-10-10asp.net點選驗證碼實現(xiàn)思路分享 (附demo)
這篇文章主要介紹了asp.net點選驗證碼實現(xiàn)思路分享 (附demo),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-01-01.NET事件監(jiān)聽機(jī)制的局限與擴(kuò)展分析
這篇文章主要介紹了.NET事件監(jiān)聽機(jī)制的局限與擴(kuò)展,詳細(xì)分析了.NET事件監(jiān)聽機(jī)制的機(jī)制與優(yōu)劣,有助于更好的理解.NET的運行原理,需要的朋友可以參考下2014-11-11