【DBDictionary】文字フォーマット変換
CSV変換 コード
using Microsoft.VisualBasic.FileIO; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace Common.Convert { /// <summary> /// CSV変換 /// </summary> public class CsvConverter { /// <summary>エンコード</summary> public Encoding Encod { get; } /// <summary>ファイルパス</summary> public string FileFullPath { get; } /// <summary>区切り文字</summary> public string Delimiter { get; } /// <summary>ヘッダ有無</summary> public bool Header { get; } /// <summary> /// コンストラクタ /// </summary> /// <param name="encod">エンコード</param> /// <param name="fileFullPath">ファイルパス</param> /// <param name="delimiter">区切り文字</param> /// <param name="header">ヘッダ有無</param> public CsvConverter(Encoding encod, string fileFullPath, string delimiter, bool header = true) { Encod = encod; FileFullPath = fileFullPath; Delimiter = delimiter; Header = header; } /// <summary> /// CSV読み込み /// </summary> /// <returns></returns> private List<List<string>> Read() { var parser = new TextFieldParser(FileFullPath, Encod) { TextFieldType = FieldType.Delimited, Delimiters = new string[] { Delimiter }, TrimWhiteSpace = true, }; // 全行読み込み var rows = new List<List<string>>(); while (!parser.EndOfData) { rows.Add(new List<string>(parser.ReadFields())); } return rows; } public DataTable GetDataTable() { var rows = Read(); // 列設定 var table = new DataTable(); if(rows.Count == 0) { return table; } //データテーブルに変換 if (Header) { table.Columns.AddRange(rows.First().ToArray().Select(s => new DataColumn(s)).ToArray()); foreach (var row in rows.Skip(1)) { table.Rows.Add(row.ToArray()); } } else { foreach (var col in rows.First()) { table.Columns.Add("col" + (table.Columns.Count + 1).ToString()); } foreach (var row in rows) { table.Rows.Add(row.ToArray()); } } return table; } } }