আমি .NET- র জন্য টিনিসিএসভিপার্সার লিখেছি , যা প্রায় দ্রুততম নেট নেট পার্সারগুলির মধ্যে একটি এবং প্রায় কোনও সিএসভি ফর্ম্যাটকে পার্স করার জন্য অত্যন্ত কনফিগারযোগ্য।
এটি এমআইটি লাইসেন্সের আওতায় প্রকাশিত হয়েছে:
আপনি এটি ইনস্টল করতে নিউগেট ব্যবহার করতে পারেন । প্যাকেজ ম্যানেজার কনসোলে নিম্নলিখিত কমান্ডটি চালান ।
PM> Install-Package TinyCsvParser
ব্যবহার
কল্পনা করুন যে কোনও CSV ফাইলে আমাদের persons.csv
প্রথম ব্যক্তির নাম, পদবি এবং জন্ম তারিখ সহ ব্যক্তিদের তালিকা রয়েছে ।
FirstName;LastName;BirthDate
Philipp;Wagner;1986/05/12
Max;Musterman;2014/01/02
আমাদের সিস্টেমে সম্পর্কিত ডোমেন মডেলটি এর মতো দেখতে পারে।
private class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
}
TinyCsvParser ব্যবহার করার সময় আপনাকে সিএসভি ডেটাতে কলাম এবং আপনার ডোমেন মডেলের সম্পত্তিগুলির মধ্যে ম্যাপিংটি সংজ্ঞায়িত করতে হবে।
private class CsvPersonMapping : CsvMapping<Person>
{
public CsvPersonMapping()
: base()
{
MapProperty(0, x => x.FirstName);
MapProperty(1, x => x.LastName);
MapProperty(2, x => x.BirthDate);
}
}
এবং তারপরে আমরা ম্যাসিটিংটি CSV ডেটার সাথে a ব্যবহার করতে পারি CsvParser
।
namespace TinyCsvParser.Test
{
[TestFixture]
public class TinyCsvParserTest
{
[Test]
public void TinyCsvTest()
{
CsvParserOptions csvParserOptions = new CsvParserOptions(true, new[] { ';' });
CsvPersonMapping csvMapper = new CsvPersonMapping();
CsvParser<Person> csvParser = new CsvParser<Person>(csvParserOptions, csvMapper);
var result = csvParser
.ReadFromFile(@"persons.csv", Encoding.ASCII)
.ToList();
Assert.AreEqual(2, result.Count);
Assert.IsTrue(result.All(x => x.IsValid));
Assert.AreEqual("Philipp", result[0].Result.FirstName);
Assert.AreEqual("Wagner", result[0].Result.LastName);
Assert.AreEqual(1986, result[0].Result.BirthDate.Year);
Assert.AreEqual(5, result[0].Result.BirthDate.Month);
Assert.AreEqual(12, result[0].Result.BirthDate.Day);
Assert.AreEqual("Max", result[1].Result.FirstName);
Assert.AreEqual("Mustermann", result[1].Result.LastName);
Assert.AreEqual(2014, result[1].Result.BirthDate.Year);
Assert.AreEqual(1, result[1].Result.BirthDate.Month);
Assert.AreEqual(1, result[1].Result.BirthDate.Day);
}
}
}
ব্যবহারকারী গাইড
একটি পূর্ণ ব্যবহারকারী গাইড এখানে পাওয়া যায়: