午夜视频在线观看区二区-午夜视频在线观看视频-午夜视频在线观看视频在线观看-午夜视频在线观看完整高清在线-午夜视频在线观看网站-午夜视频在线观看亚洲天堂

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

使用 FG.CsvParser 簡(jiǎn)化C#的CSV操作

admin
2025年2月16日 10:4 本文熱度 556

前言

CSV 文件以純文本形式存儲(chǔ)表格數(shù)據(jù),每行代表一條記錄,各字段之間通常以逗號(hào)作為分隔符。但在實(shí)際應(yīng)用中,也可能使用分號(hào)、制表符等其他字符作為分隔符。它被廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)和交換。在軟件開(kāi)發(fā)中,使用 CSV 文件是常見(jiàn)任務(wù)。本文將介紹 FG.CsvParser 的使用方法。

FG.CsvParser

1、概述

FG.CsvParser 是 .NET 三方庫(kù),它可以運(yùn)行在 .NET Core 和 .NET Framework 中, 它旨在使讀取、寫入和查詢 CSV 文件變得簡(jiǎn)單高效。憑借其靈活的 API 和廣泛的配置選項(xiàng),F(xiàn)G.CsvParser 也是處理CSV文件不錯(cuò)的類庫(kù)。

// github 地址https://github.com/fermanquliyev/FG.CsvParser

2、特征

  • 讀取文件: 將 CSV 內(nèi)容轉(zhuǎn)換為 JSON 或強(qiáng)類型對(duì)象列表;

  • 寫入文件: 輕松為文件編寫 CSV 內(nèi)容或附加到現(xiàn)有文件;

  • 高度可配置:  可調(diào)整解析選項(xiàng)(如分隔符、行分隔符和編碼);

  • 查詢數(shù)據(jù): 使用自定義篩選條件高效查詢 CSV 內(nèi)容;

3、使用要求

在C#中使用 FG.CsvParser 庫(kù)讀取和解析CSV文件,首先需要安裝 FG.CsvParser 庫(kù)。我們通過(guò) NuGet 包管理器來(lái)安裝或通過(guò)指令方式安裝。

// 包管理控制臺(tái)PM> Install-Package FG.CsvParser// .NET 命令行控制臺(tái)> dotnet add package FG.CsvParser

安裝完成后,我們就可以引入FG.CsvHelper 命名空間,后續(xù)根據(jù)提供的API進(jìn)行讀寫文件。

4、配置信息

FG.CsvHelper 的配置非常靈活,可以通過(guò)CsvParserConfiguration類進(jìn)行各種設(shè)置(如默認(rèn)分隔符、默認(rèn)行尾和格式等)。

  • Delimiter:指定字段分隔符,默認(rèn)為逗號(hào)。

  • HasHeader:指定CSV文件是否有標(biāo)題記錄。

  • RowSplitter: *** 指定行拆分器。

  • Encoding:指定編碼格式。

var configuration = new CsvParserConfiguration{    // 是否有標(biāo)題記錄    HasHeader = true,    // 指定字段分隔符    Delimitter = ';',    // 換行    RowSplitter = "\r\n",    // 指定編碼格式    Encoding = Encoding.UTF8,};

示例了解

1、Csv 文件內(nèi)容

ID,Name,Barcode,Category,Description10001,Apple,A202502150001,fruit,紅富士蘋果10002,Grape,G202502152003,fruit,陽(yáng)光葡萄

2、創(chuàng)建實(shí)例

使用默認(rèn)設(shè)置創(chuàng)建實(shí)例,打開(kāi)CSV文件。

string csvPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "product.csv");var parser = CsvParser.OpenFile(csvPath);
使用自定義配置創(chuàng)建實(shí)例,打開(kāi)CSV文件。
string csvPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "product.csv");// 打開(kāi)帶有標(biāo)題行的文件var parser = CsvParser.OpenFile(csvPath,hasHeader: true);
string csvPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "product.csv");var configuration = new CsvParserConfiguration{    HasHeader = true,    Delimitter = ',',    RowSplitter = "\r\n",    Encoding = Encoding.UTF8};var parser = CsvParser.OpenFile(csvPath,configuration);

3、讀取內(nèi)容

定義一個(gè)Product類。

public class Product{    [CsvColumn("ID")] // 使用特性,用于配置字段的映射和處理方式    public int Id { get; set; }    public string Name { get; set; }    public string Barcode { get; set; }    public string Category { get; set; }    public string Description { get; set; }}

將 CSV 內(nèi)容轉(zhuǎn)換為 JSON 格式內(nèi)容。

static async Task Main(string[] args){    var configuration = new CsvParserConfiguration    {        // 是否有標(biāo)題記錄        HasHeader = true,        // 指定字段分隔符        Delimitter = ';',        // 換行        RowSplitter = "\r\n",        // 指定編碼格式        Encoding = Encoding.UTF8,    };    string csvPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "product.csv");    var parser = CsvParser.OpenFile(csvPath, configuration);    string? jsonContent = await parser.ReadAsJson();    Console.WriteLine(jsonContent);    Console.Read();}

將 CSV 內(nèi)容轉(zhuǎn)換為對(duì)象列表。

static async Task Main(string[] args){    string csvPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "product.csv");    var parser = CsvParser.OpenFile(csvPath, hasHeader: true);    List<Product> productList = await parser.ReadAs<Product>();    foreach (var data in productList)    {        Console.WriteLine($"ID:{data.Id}, Name:{data.Name}, Barcode:{data.Barcode},Category:{data.Category},Description:{data.Description}");    }    Console.Read();}

4、寫入內(nèi)容

通過(guò)將字符串內(nèi)容寫寫入文件。

static async Task Main(string[] args){    string csvPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "product.csv");    var parser = CsvParser.OpenFile(csvPath, hasHeader: true);    string csvContent = "5001,Snakehead,F2025021550001,Fish,黑魚\r\n";    await parser.WriteAsync(csvContent,append:false);    Console.Read();}

使用對(duì)象列表,并將其寫入文件。

static async Task Main(string[] args){    string csvPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "fishProduct.csv");    var parser = CsvParser.OpenFile(csvPath, hasHeader: false);    var records = new List<Product>    {        new Product { Id = 5001, Name = "Snakehead",Barcode="F2025021550001",Category="Fish",Description="黑魚"},        new Product { Id = 6001, Name = "Carp",Barcode="F2025021550001",Category="Fish",Description="鯉魚" },    };    await parser.WriteAsync(records, append: false);    Console.Read();}

5、查詢內(nèi)容

可以使用自定義篩選條件查詢數(shù)據(jù),以僅提取所需的信息。

static async Task Main(string[] args){    string csvPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Product.csv");    using var parser = CsvParser.OpenFile(csvPath, new CsvParserConfiguration    {        HasHeader = true,        Delimitter = ',',        RowSplitter = "\r\n",        Encoding = Encoding.UTF8    });    await foreach (Product item in parser.Query<Product>(data => data.Name== "Apple"))    {        Console.WriteLine($"ID:{item.Id}, Name:{item.Name}, Barcode:{item.Barcode},Category:{item.Category},Description:{item.Description}");    }    Console.Read();}

小結(jié)

FG.CsvParser 通過(guò)提供干凈直觀的 API 簡(jiǎn)化了 CSV 文件的使用,提供了高效且靈活性的數(shù)據(jù)的方法。


閱讀原文:原文鏈接


該文章在 2025/2/17 12:28:07 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产亚洲欧美日韩在线观 | 白洁一区二区三区中文 | 福利一区在线观看 | 国产成本人视频免费 | 国产精品无码av片在线观看 | 精品无人区麻豆乱码久久久 | 国产艳妇av在线 | 国产福利精品在线观看 | 97人妻碰碰碰视频 | 国产精品亚洲三区在线 | 国产精品欧美亚洲韩国日本 | 国产超薄丝袜脚交视频 | 国产欧美丝袜小视频 | 国产自在现偷国产精品一区二区 | www官网在线 | 91探花视频 | av老司机午夜福利片免费观看 | 国产精品成人3p一区二区三区 | 国产激情久久精品 | 国产成人无码手机免费 | 国产这里有精品视频 | 国产自产视频一区二区三区 | 成人精品国产成人亚洲 | 国产嫩草视频 | 国产福利小电影视福利在线 | 国产精品丝袜综合区丝袜 | 97精品国产自产在线观看永久 | 国产日韩免费视频在线观看 | 白嫩无码人妻丰满熟妇啪啪 | 国产丝袜视频在线影院 | 国产精品白浆无码流出在线观看 | 国产欧美日韩综合视频专 | 国产高清精品在线中文字幕 | 国产一区二区三区激情四射 | 国产亚洲欧美专区精品 | 国产无码精品一区二区三区 | 91狠狠色综合久久久夜色撩人 | 国产日韩末满十八禁止观看 | 国产精品丝袜一区二区三区 | 国产午夜福利片在线观看尤物 | 国产亚洲成人av |