IRONSOFTWAREHOME
IRONXLの使用

C#でCSVファイルを読み取る: チュートリアル

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

さまざまなExcel形式を扱う場合、データを読み取り、それをプログラムで再構成する必要があることがよくあります。 この記事では、IronXLを使用してC#でCSVファイルを読み取り、Excelスプレッドシートからデータを解析する方法を学びます。IronXLはこの作業に最適なツールです。

CSVとは何ですか?

CSVはシンプルなデータ形式ですが、多くの違いがあります。 C#プロジェクトでプログラム的に読み取るのが難しい場合があります。なぜなら、データの行と列を区別するために複数の区切り文字を使用しているからです。 この記事では、IronXLライブラリを使用してCSVファイルを読み取る方法を紹介します。


1. How to read a CSV File in C#

MVC、ASP.NET、または.NET CoreでIronXLを使用してCSVファイルを読み取る前に、それをインストールする必要があります。 こちらが簡単な手順です。

  1. Visual Studioで、[プロジェクト]メニューを選択します
  2. NuGetパッケージを管理します
  3. IronXL.Excelを検索します
  4. インストールします

C#でのCSVファイルの読み込み: チュートリアル、図1: Visual StudioのNuGetパッケージマネージャーでIronXLを検索 Visual StudioのNuGetパッケージ マネージャでIronXLを検索

C#でCSVファイルを読み取る必要があるとき、IronXLは最適なツールです。 下のコードセグメントで示すように、カンマやその他の区切り文字でCSVファイルを読み取ることができます。

// Load a CSV file and interpret it as an Excel-like workbook
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Access the default worksheet in the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook to a new Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");

出力:

C#でのCSVファイルの読み込み: チュートリアル、図2: コンマ区切りのCSVファイル出力 カンマ区切りのCSVファイルを出力

コードの説明:

WorkBook オブジェクトが作成されます。 LoadCSV メソッドは、読み取るCSVファイルの名前、形式、および区切り文字を指定するためにWorkBookオブジェクトで使用されます。 この場合、区切り文字としてカンマが使用されています。

WorkSheet オブジェクトがその後作成されます。 ここにCSVファイルの内容が配置されます。 ファイルは新しい名前と形式で保存されます。

C#でのCSVファイルの読み込み: チュートリアル、図3: Microsoft Excelに表示されたデータ Microsoft Excelに表示されるデータ


2. IronXL for Excel Files

IronXLを使用すると、C#でExcelファイル形式をスムーズに操作できます。 直接ダウンロードでIronXLをインストールすることもできます。 または、Visual StudioのNuGetインストールを使用することもできます。 ソフトウェアは開発用には無料です。

dotnet add package IronXL.Excel

3. WorkBook を読み込み WorkSheet にアクセスする

WorkBook は、Excelファイルとそのすべての機能への完全なアクセスを提供するIronXLのクラスです。 例えば、Excelファイルにアクセスしたい場合、次のコードを使用します。

// Load the Excel file
WorkBook wb = WorkBook.Load("sample.xlsx"); // Excel file path

特定のExcelファイルのワークシートにアクセスするために、IronXLはWorkSheetクラスを提供します。

// Access a specific worksheet by name
WorkSheet ws = wb.GetWorkSheet("Sheet1"); // by sheet name

Excelのワークシートwsを取得したら、そこからあらゆる種類のデータを抽出し、すべてのExcel機能を実行することができます。 このプロセスを通じて、Excelのワークシートwsからデータにアクセスすることができます。

using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Iterate through a range of cells and display their values
        foreach (var cell in ws["A2:A10"])
        {
            Console.WriteLine("Value is: {0}", cell.Text);
        }
        Console.ReadKey();
    }
}

4. Excel WorkSheetをDataTableとして読み取る

IronXLを使用することで、Excel WorkSheet をDataTableとして簡単に操作することができます。

DataTable dt = ws.ToDataTable(true); // Converts the worksheet to a DataTable, using the first row as column names

次の名前空間を使用してください:

using IronXL;
using System.Data;

次のコードを書きます。

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel file Name
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Parse worksheet into datatable
        DataTable dt = ws.ToDataTable(true); // Parse Sheet1 of sample.xlsx file into DataTable

        // Iterate through rows and columns to display their values
        foreach (DataRow row in dt.Rows) // Access rows
        {
            for (int i = 0; i < dt.Columns.Count; i++) // Access columns of corresponding row
            {
                Console.Write(row[i] + "  ");
            }
            Console.WriteLine();
        }
    }
}

C#でのCSVファイルの読み込み: チュートリアル、図4: DataTableオブジェクトからのコンソール出力 DataTableオブジェクトのコンソール出力

この例では、ExcelファイルをDataSetとして使用する方法を見ていきます。

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and convert it to a DataSet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        DataSet ds = wb.ToDataSet(); // Parse WorkBook wb into DataSet

        // Iterate through tables to display their names
        foreach (DataTable dt in ds.Tables)
        {
            Console.WriteLine(dt.TableName);
        }
    }
}

C#でのCSVファイルの読み込み: チュートリアル、図5: DataSetオブジェクトからシート名にアクセス DataSetオブジェクトからシート名にアクセスする

すべてのExcelシートの各セル値にアクセスする別の例を見てみましょう。 ここでは、ExcelファイルのすべてのWorkSheetの各セル値にアクセスできます。

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and convert it to a DataSet
        WorkBook wb = WorkBook.Load("Weather.xlsx");
        DataSet ds = wb.ToDataSet(); // Treat the complete Excel file as DataSet

        // Iterate through each table and its rows and columns
        foreach (DataTable dt in ds.Tables) // Treat Excel WorkSheet as DataTable
        {
            foreach (DataRow row in dt.Rows) // Corresponding Sheet's Rows
            {
                for (int i = 0; i < dt.Columns.Count; i++) // Sheet columns of corresponding row
                {
                    Console.Write(row[i] + "  ");
                }
                Console.WriteLine();
            }
        }
    }
}

C#でのCSVファイルの読み込み: チュートリアル、図6: Datasetオブジェクトのコンソール出力 Datasetオブジェクトのコンソール出力

5. C# .NETでのCSV解析

CSVファイルは、フィールド内の改行の処理方法や、単純な文字列分割アプローチで完全にブロックされるかもしれない引用符で囲まれたフィールドなど、問題が豊富です。 最近、カスタマイズ可能な区切り文字を指定して、コンマで値を区切る代わりにCSVをC# .NETで変換する際に次のオプションを発見しました。

6. C#レコードでのCSVデータの読み取り

このプロセスは、次のファイルをリーダーに進めさせます。TryGetFieldでCSVフィールドファイルを読み取ります。 フィールドフィールドのCSVファイルをレコードフィールドとして読み取る関数を使用します。

// Load a CSV file, specify the file format and delimiter
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Access the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert worksheet to DataTable    
DataTable dt = ws.ToDataTable(true); // Parse Sheet1 of sample.xlsx file into DataTable

// Iterate through rows and columns to display their values
foreach (DataRow row in dt.Rows) // Access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) // Access columns of corresponding row
    {
        Console.Write(row[i] + "  ");
    }
    Console.WriteLine();
}

C#でのCSVファイルの読み込み: チュートリアル、図7: DataTableからのコンソール出力 DataTableからのコンソール出力

7. Excelファイルからデータを取得する

さまざまな方法を使って、開いているExcel WorkSheet からあらゆる種類のデータを簡単に取得できます。 次の例では、特定のセルの値にアクセスし、それをstringに解析する方法を確認できます:

// Access the data by cell addressing
string val = ws["Cell Address"].ToString();

上記の行では、ws はStep 2で定義されたWorkSheetです。これは"単純な"アプローチですが、Excelファイルデータにアクセスする方法についての異なる例を読むことができます。

8. How to Parse Excel Files in C#

アプリケーションビルドにExcelスプレッドシートを使用する場合、データに基づいて結果を分析することがよくあり、C#内でExcelファイルデータを必要な形式に解析して正しい結果を得る必要があります。 IronXLを使用すると、C#環境での異なる形式へのデータの解析が簡単になります; 以下の手順を参照してください。

using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Parse Excel cell value into string
        string str_val = ws["B3"].Value.ToString();

        // Parse Excel cell value into Int32
        Int32 int32_val = ws["G3"].Int32Value;

        // Parse Excel cell value into Decimal
        decimal decimal_val = ws["E5"].DecimalValue;

        // Output parsed values to the console
        Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val);
        Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val);
        Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val);

        Console.ReadKey();
    }
}

9. Excelデータを数値&ブーリアン値に解析する方法

さて、Excelファイルのデータを解析する方法に進みます。 まず、数値のExcelデータを処理し、それを必要な形式に解析する方法を見ていきます。

C#でのCSVファイルの読み込み: チュートリアル、図8: 各データタイプのサマリーテーブル 各データ型のサマリーテーブル

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Parse Excel cell value into string
        string str_val = ws["B3"].Value.ToString();

        // Parse Excel cell value into Int32
        Int32 int32_val = ws["G3"].Int32Value;

        // Parse Excel cell value into Decimal
        decimal decimal_val = ws["E5"].DecimalValue;

        // Output parsed values to the console
        Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val);
        Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val);
        Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val);

        Console.ReadKey();
    }
}

このコードは次の出力を表示します:

C#でのCSVファイルの読み込み: チュートリアル、図9: 正しいデータタイプを持つコンソール出力 正しいデータ型のコンソール出力

ここでExcelファイルsample.xlsxの値を見ることができます:

C#でのCSVファイルの読み込み: チュートリアル、図10: Excelで正しいデータタイプを表示 Excelに正しいデータ型を表示

ExcelファイルのデータをBooleanデータ型に解析するために、IronXLはBoolValue関数を提供します。 次のように使用できます。

// Access a cell value as a boolean
bool Val = ws["Cell Address"].BoolValue;

10. ExcelファイルをC#コレクションに解析する方法

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Convert a range into an array
        var array = ws["B6:F6"].ToArray();

        // Get the count of items in the array
        int item = array.Count();

        // Get the first item as a string
        string total_items = array[0].Value.ToString();

        // Output information about the array to the console
        Console.WriteLine("First item in the array: {0}", item);
        Console.WriteLine("Total items from B6 to F6: {0}", total_items);

        Console.ReadKey();
    }
}

10.1 Excel WorkSheet をDataTableに解析する方法

IronXLの優れた機能の1つは、特定のExcel WorkSheet を簡単にDataTableに変換できることです。 この目的のために、次のようにIronXLの.ToDataTable()関数を使用できます:

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Parse Sheet1 of sample.xlsx file into DataTable
        // Setting 'true' makes the first row in Excel as the column names in DataTable
        DataTable dt = ws.ToDataTable(true);
    }
}

10.2 ExcelファイルをDataSetに解析する方法

完全なExcelファイルをDataSetに解析したい場合は、この目的のためにIronXLの.ToDataSet()関数を使用できます。

class Program
{
    static void Main(string[] args)
    {
        // Load an entire workbook into a DataSet
        WorkBook wb = WorkBook.Load("sample.xlsx");

        // Convert workbook to DataSet
        DataSet ds = wb.ToDataSet();

        // We can also get a DataTable from the DataSet which corresponds to a WorkSheet
        DataTable dt = ds.Tables[0];
    }
}

10.3 特定の範囲内でExcelデータを読み取る方法

IronXLは、特定の範囲内でExcelファイルデータを読み取るためのインテリジェントなメソッドを提供します。 範囲は行と列の両方に適用できます。

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Get specified range values by loop
        foreach (var item in ws["B3:B8"])
        {
            Console.WriteLine("Value is: {0}", item);
        }
        Console.ReadKey();
    }
}

上記のコードは次の出力を表示します:

C#でのCSVファイルの読み込み: チュートリアル、図11: 範囲B3:B8のすべての値にアクセスするためのコンソール出力 範囲B3:B8内のすべての値にアクセスするコンソール出力

そしてExcelファイルsample.xlsxの値を生成します:

C#でのCSVファイルの読み込み: チュートリアル、図12: sample.xlsxからのデータ表示 sample.xlsxからのデータ表示

さらに、IronXLは、セルとの対話のための多くのExcelメソッドと互換性があります。これにはスタイルとボーダー数学関数条件付き書式や利用可能なデータを使用してチャートを作成することが含まれます。

11. Excelファイルのブールデータを読み取る方法

アプリケーション開発では、Excelファイルのブールデータ型に基づいて意思決定を行う必要があります。

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");
        
        // Traverse a range and output boolean values
        foreach (var item in ws["G1:G10"])
        {
            Console.WriteLine("Condition is: {0}", item.BoolValue);
        }
        Console.ReadKey();
    }
}

これにより、次の出力が得られます:

C#でのCSVファイルの読み込み: チュートリアル、図13: Booleanデータ取得からのコンソール出力 ブールデータの取得からのコンソール出力

そして、Excelファイルsample.xlsxのC1からC10の値:

C#でのCSVファイルの読み込み: チュートリアル、図14: コンソール出力と比較するためのExcelサンプル コンソール出力と比較するためのExcelサンプル

12. 完全なExcel WorkSheetを読み取る方法

行と列のインデックスを使用して、完全なExcel WorkSheetを読み取るのは簡単です。 この目的のために、1つのループで全行を横断し、もう1つで特定の行のすべての列を横断します。 その後、Excel WorkSheet全体のすべてのセル値を簡単に取得できます。

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel File Name
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Traverse all rows of Excel WorkSheet
        for (int i = 0; i < ws.Rows.Count(); i++)
        {
            // Traverse all columns of specific Row
            for (int j = 0; j < ws.Columns.Count(); j++)
            {
                // Get the values
                string val = ws.Rows[i].Columns[j].Value.ToString();
                Console.WriteLine("Value of Row {0} and Column {1} is: {2}", i, j, val);
            }
        }
        Console.ReadKey();
    }
}

C#でのCSVファイルの読み込み: チュートリアル、図15: すべての値を読み取るときのコンソール出力 すべての値を読み取るコンソール出力

13. InteropなしでExcelファイルを読み取る方法

IronXLは、開発者がXLSおよびXLSX文書からExcelデータを読み取り、編集できるようにするC#向けのExcelライブラリであり、Microsoft.Office.Interop.Excelを使用せずに行います。

このAPIは、次のためにExcelファイルを直感的に作成、読み取り、操作、保存、エクスポートできるようにします:

  1. .NET Framework 4.5+
  2. .NET Core 2+
  3. .NET Standard
  4. Xamarin
  5. Windowsモバイル
  6. Mono
  7. & Azureクラウドホスティング
  8. Blazor
  9. .NET MAUI

次の名前空間を追加します。

using IronXL;
using System;
using System.Linq;

次に、メイン関数内に次のコードを書いてください。

class Program
{
    static void Main(string[] args)
    {
        // Load an Excel file and access the first worksheet
        WorkBook workbook = WorkBook.Load("Weather.xlsx");
        WorkSheet sheet = workbook.WorkSheets.First();

        // Select cells easily in Excel notation and return the calculated value
        int cellValue = sheet["A2"].IntValue;

        // Read from ranges of cells elegantly
        foreach (var cell in sheet["A2:A10"])
        {
            Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
        }
    }
}

C#でのCSVファイルの読み込み: チュートリアル、図16: 各セルからのコンソール出力 各セルのコンソール出力

IronXLは、ASP.NET、MVC、Windows、macOS、Linux、iOS、およびAndroidモバイルアプリケーション開発も完全にサポートしています。

14. 結論とIronXL特別オファー

C#でのCSV解析に加えて、IronXLはCSVファイルをわずか2行のコードでExcelに変換します!

C#またはVB.NETを使用すると、Interopを使用せずにIronXLのExcel APIを非常に簡単に使用できます。Excelスプレッドシートを読み取り、編集、作成したり、XLS/XLSX/CSV/TSVなどの他のExcel形式で操作したりできます。 複数のフレームワークをサポートしているため、2つの価格で5つの製品を購入できます。 価格ページをクリックして詳細情報を確認してください。

C#でのCSVファイルの読み込み: チュートリアル、図17: Iron Suiteの5つの製品 Iron Suiteの5つの製品

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。