تا %60 تخفیف خرید برای 2 نفر با صدور مدرک فقط تا
00 00 00

آموزش خواندن و کار با فایل های CSV در سی شارپ (C#)

حسین احمدی
حسین احمدی
3 پسند
181 بازدید
0 نظر
10 ماه قبل

ضمیمه ها

data.csv

راه های زیادی برای پردازش و خواندن فایل های CSV در سی شارپ وجود داره، مثل اینکه خط به خط فایل متنی خونده بشه و مقادیر استخراج بشن. اما یکی از راهکارهای ساده استفاده از پکیج LumenWorksCsvReader هست. بوسیله این پکیج شما به راحتی می تونید اطلاعات رو از یک فایل CSV بخونید و بوسیله یک DataTable به اطلاعات دسترسی داشته باشید.برای فایل CSV نمونه می تونید از فایلی که به این مطلب ضمیمه شده استفاده کنید. در ابتدا بوسیله دستور زیر پکیج LumenWorksCsvReader رو به پروژه اضافه کنید:

Install-Package LumenWorksCsvReader

بعد از اضافه کردن پکیج، باید یک DataTable برای نگهداری مقادیر بارگذاری شده تعریف کنیم:

var csvTable = new DataTable();

برای خوندن فایل csv و بارگذاری اطلاعات داخل DataTable از کلاس CsvReader به صورت زیر استفاده می کنیم:

using (var csvReader = new CsvReader(new FileStream("e:\\data.csv", FileMode.Open), true, Encoding.UTF8))
{
    csvTable.Load(csvReader);    
}

پارامترهایی که در کد بالا به کلاس CsvReader ارسال کردیم به ترتیب:

  1. یک شئ از نوع Stream که شامل فایل بارگذاری شده هست و ما اینجا از کلاس FileStream استفاده کردیم.
  2. پارامتر دوم مشخص می کنه که فایل ما شامل Header هست یا نه. منظور خط اول فایل هست که معمولاً نام هر ستون مشخص میشه
  3. Encoding مورد استفاده بری خواندن مقادیر فایل

نکته ای که باید بهش توجه کنید این هست که معمولاً فایل های csv یک مفهومی دارن به نام Delimiter که کاراکتر جداکننده هر ستون رو مشخص می کنه. به صورت پیش فرض کاراکتر , برای delimiter استفاده میشه، اما می تونید بوسیله پارامتر delimiter کاراکتر جداکننده رو مشخص کنید:

using (var csvReader = new CsvReader(new FileStream("e:\\data.csv", FileMode.Open), true, Encoding.UTF8, delimiter: ';'))

دستور زیر اطلاعات بارگذاری شده داخل DataTable رو داخل خروجی نمایش میده:

foreach (DataRow row in csvTable.Rows)
{
    Console.WriteLine($"policyID: {row[0]}, statecode: {row["statecode"]}, country: {row["county"]}");
}

بخشی از خروجی کد بالا به صورت زیر هست:

policyID: 279152, statecode: FL, country: HILLSBOROUGH COUNTY
policyID: 794433, statecode: FL, country: HILLSBOROUGH COUNTY
policyID: 724093, statecode: FL, country: HILLSBOROUGH COUNTY
policyID: 284559, statecode: FL, country: PINELLAS COUNTY
policyID: 260623, statecode: FL, country: PINELLAS COUNTY
policyID: 277148, statecode: FL, country: PINELLAS COUNTY

در مطلب در مورد نحوه ایجاد یک کلاس به عنوان Model و ایجاد مدل از روی فایل CSV توضیح می دیم.

نویسنده: حسین احمدی
منبع: جزیره برنامه نویسی وب سایت توسینسو
هر گونه نشر و کپی برداری با ذکر نام منبع و نویسنده بلامانع است

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...