経緯
C#でCSVファイルを読み込む処理ができたので、次に特定の行・特定の列の値を抽出する方法を学びました。
実務では「何行目の何列目にあるデータを取り出したい」というケースは非常に多いため、汎用的に使えるコードを作っておくと便利です。
今回は、CSVファイルの17行目にある2列目・3列目・4列目の値を読み取る処理を実装してみました。
使用するメソッド:File.ReadLines() と Split(‘,’)
C#では File.ReadLines() を使用することで、CSVファイルを1行ずつ扱うことができます。
その後、 Split(',') を使用して、1行を列単位の配列に分解して目的の値を抽出します。
実装コード:17行目の2~4列の値を取得する
以下のコードは、フォーム上のボタン btnReadcsv をクリックすると、プロジェクト内の data フォルダにあるCSVファイルをすべて読み込み、各ファイルの17行目の2~4列の値を取得して表示する処理です。
private void btnReadcsv_Click(object sender, EventArgs e)
{
// プロジェクトのルートディレクトリを取得
string projectDir = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;
// dataフォルダへのパスを作成
string dataDir = Path.Combine(projectDir, "data");
// dataフォルダ内のすべてのCSVファイルを取得
var files = Directory.GetFiles(dataDir, "*.csv");
foreach (var file in files)
{
// 各CSVファイルのすべての行を読み込みリスト化
var lines = File.ReadLines(file).ToList();
// 17行目(インデックス16)を取得
if (lines.Count >= 17)
{
string[] line17 = lines[16].Split(',');
// 安全に列を参照(最低4列以上ある場合)
if (line17.Length >= 4)
{
string column2Value = line17[1]; // 2列目(インデックス1)
string column3Value = line17[2]; // 3列目(インデックス2)
string column4Value = line17[3]; // 4列目(インデックス3)
MessageBox.Show($"ファイル: {Path.GetFileName(file)}\n2列目: {column2Value}\n3列目: {column3Value}\n4列目: {column4Value}");
}
else
{
MessageBox.Show($"ファイル: {Path.GetFileName(file)} の17行目に十分な列がありません。");
}
}
else
{
MessageBox.Show($"ファイル: {Path.GetFileName(file)} に17行目が存在しません。");
}
}
}
このコードのポイント
- 17行目を取得するために
.ToList()[16]または.Skip(16).First()を使用 Split(',')によって、行をカンマ区切りで分解し配列として扱う- インデックスは 0から始まる ため、2列目は
[1]、3列目は[2]、4列目は[3] - 列数や行数が不足している場合のエラーチェックも実装済み
応用例
- 指定行・指定列のデータを変数に保存して加工や計算に利用
- フィルター条件付きで特定の値のみ収集
- 複数CSVから一括でデータ集計(ループ処理の発展)
まとめ
CSVファイルから特定の行・特定の列の値を抽出するには、
File.ReadLines()で行単位の処理Split(',')で列単位の分解
という基本的な方法を組み合わせることで簡単に実装可能です。
実際の業務でも「何行目にあるこの項目を抽出したい」という場面は多いため、基礎的ながら非常に実用的な処理です。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
