C#でCSVファイルをDataTableへ読み込む

C# で CSVファイルを読み込んでデータテーブル(DataTable)へ格納するサンプルを作成しました。VisualStudio 2010 で動作確認しています。

using System;
using System.IO;
using System.Data;

namespace CSVTest
{
    class CSVImporter
    {
        static void Main(string[] args)
        {
            CSVImporter csvimporter = new CSVImporter();

            if (args.Length > 0 && !File.Exists(args[0]))
            {
                return;
            }

            // CSVファイルの読み込み
            DataTable dt = csvimporter.ImportCSVToDataTable(args[0], ',', false);

            // 読み込んだCSVを確認
            DataRow[] rows = dt.Select();

            for (int i = 0; i < rows.Length; i++)
            {
                string s = string.Empty;
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    s += rows[i][j];
                    if (j 
0) { string[] fields = csvRows[0].Split(delim); // DataTable 列の作成 for (int i = 0; i < fields.GetLength(0); i++) { if (is1stRowHeader) { // 先頭行をヘッダーとして使用 dt.Columns.Add(fields[i], typeof(string)); } else { dt.Columns.Add(); } } // CSVデータをDataTableへ読み込む int firstDataRow = is1stRowHeader ? 1 : 0; for (int i = firstDataRow; i < csvRows.GetLength(0); i++) { fields = csvRows[i].Split(delim); DataRow row = dt.NewRow(); row.ItemArray = fields; dt.Rows.Add(row); } } return dt; } } }

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください