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であれば、StreamReader と Split だけで十分に処理可能です。
大量データやパフォーマンスが気になる場合は、CsvHelperなどのライブラリの使用も検討してみてください。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
