【C#】CSVファイルで指定行から読み込み、特定の列だけを抽出する方法

CSVファイルを扱っていると、

  • データの本体が途中の行(例:36行目)から始まっている
  • すべての列ではなく、特定の列だけ取得したい

といったケースに出くわすことがあります。

私の場合、36行目から始まるCSVの22番目の列の値だけを抽出する必要がありました。
今回はその方法についてご紹介いたします。


目次

目的


  • CSVの先頭35行は無視する(コメントやヘッダーなど)
  • 36行目以降にあるデータの「22列目(インデックス21)」だけを取り出す
  • 必要に応じてその値を加工し、新しいリストに保存する

使用した方法:StreamReader + Split + List<string>


StreamReader でCSVファイルを1行ずつ読み取りながら、36行目以降に処理を適用し、22列目の値を取り出すコードです。


実際のコード例

using System;
using System.Collections.Generic;
using System.IO;

List<string> newLines = new List<string>();

using (var reader = new StreamReader("sample.csv"))
{
    // 最初の35行を読み飛ばす
    for (int i = 0; i < 35; i++)
    {
        reader.ReadLine(); // 読み捨て(必要に応じて保存しない)
    }

    // 36行目以降の処理
    while (!reader.EndOfStream)
    {
        var line = reader.ReadLine();
        var values = line.Split(',');

        // 22番目の列が存在し、数値としてパース可能な場合
        if (values.Length > 21 && double.TryParse(values[21], out double value))
        {
            // 必要に応じて加工してリストに追加
            string newLine = $"{value}";
            newLines.Add(newLine);
        }
    }
}

ポイント解説

  • ReadLine() を35回呼び出して、36行目から処理開始
  • Split(',') を使って列を分解
  • values[21] で**22列目の値(0始まり)**を取得
  • double.TryParse() を使って、数値変換可能なデータだけを処理
  • List<string> に抽出値を保存して、後で別ファイルに出力も可能

応用例

  • values[21]DateTime.TryParse() で日時型に変換
  • newLine = $"{DateTime.Parse(values[21]).ToString("yyyy-MM-dd")}" などで整形
  • 列の条件に応じてフィルタ処理(if文を追加)
  • StreamWriter を使って新しいCSVファイルとして出力

まとめ

C#でCSVを扱うとき、次のようなニーズに対応できます:

  • 行数を指定してスキップ:for + ReadLine()
  • 特定の列だけ抽出:Split(',') + values[index]
  • 型チェック:TryParse()

単純なCSVであれば、StreamReaderSplit だけで十分に処理可能です。

大量データやパフォーマンスが気になる場合は、CsvHelperなどのライブラリの使用も検討してみてください。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次