CSV と Excel の読み書き用の C# のライブラリ TableIO を作りました
今更?感がありますが、年末年始で CSV と Excel のようなテーブル形式のデータを
同じような方法で読み書きできるライブラリを作成しました。
仕事の都合で CSV と Excel を同じようなインターフェースで扱いたい!と思っていて
最初は CsvHelper をゴニョゴニョしてやろうと思ったんですが( CsvHelper.Excel 使ったり)
やっぱり CSV 専用のライブラリなのでちょい厳しいと感じて、自作することにしました。
使い方
1.nuget で、TableIO を取得。CSV だけじゃなく、Excel(xlsx) を扱いたいときは TableIO.ClosedXml を。
2.コードを書く。
using TableIO; class Model { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } public string Remarks { get; set; } } public void Main() { IList<Model> models = null; // read file to models. using (var stmReader = new StreamReader("readfile.csv")) { // parameters is (textReader, hasHeader) var tableReader = new TableFactory().CreateCsvReader<Model>(stmReader, true); var models = tableReader.Read(); Assert.AreEqual(5, models.Count); Assert.AreEqual(1, model[0].Id); } // write models to file. using (var stmWriter = new StreamWriter("writefile.csv")) { var tableWriter = new TableFactory().CreateCsvWriter<ValidCsvModel>(stmWriter); // parameter is (models, header) tableWriter.Write(models, new[] { "ID", "NAME", "PRICE", "REMARKS" }); } }
3.使い方の詳細は以下をご参照ください。
GitHub - nabehiro/TableIO: TableIO provides common interaface for reading and writing CSV, Excel and other table format content.