フッターコンテンツにスキップ
IRONXLの使用
C#でIronXLを使用してCSVファイルを読む方法

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

さまざまな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");
// 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");
$vbLabelText   $csharpLabel

出力:

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

コードの説明:

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

次に、 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 はIronXLのクラスであり、そのオブジェクトは Excel ファイルとそのすべての関数への完全なアクセスを提供します。 例えば、Excelファイルにアクセスしたい場合、次のコードを使用します。

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

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

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

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();
    }
}
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();
    }
}
$vbLabelText   $csharpLabel

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

IronXLを使用すると、Excel をデータテーブルとして操作するのは非常に簡単です。

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

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

using IronXL;
using System.Data;
using IronXL;
using System.Data;
$vbLabelText   $csharpLabel

次のコードを書きます。

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();
        }
    }
}
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();
        }
    }
}
$vbLabelText   $csharpLabel

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);
        }
    }
}
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);
        }
    }
}
$vbLabelText   $csharpLabel

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();
            }
        }
    }
}
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();
            }
        }
    }
}
$vbLabelText   $csharpLabel

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

5. C# .NETでのCSV解析

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

6. C# Recordsでの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();
}
// 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();
}
$vbLabelText   $csharpLabel

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

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

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

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

上記の行の ws は、ステップ 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();
    }
}
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();
    }
}
$vbLabelText   $csharpLabel

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();
    }
}
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();
    }
}
$vbLabelText   $csharpLabel

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

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

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

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

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

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

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();
    }
}
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();
    }
}
$vbLabelText   $csharpLabel

10.1 Excel WorkSheet をデータテーブルに解析する方法

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);
    }
}
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);
    }
}
$vbLabelText   $csharpLabel

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];
    }
}
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];
    }
}
$vbLabelText   $csharpLabel

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();
    }
}
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();
    }
}
$vbLabelText   $csharpLabel

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

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();
    }
}
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();
    }
}
$vbLabelText   $csharpLabel

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

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

そして、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();
    }
}
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();
    }
}
$vbLabelText   $csharpLabel

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;
using IronXL;
using System;
using System.Linq;
$vbLabelText   $csharpLabel

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

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);
        }
    }
}
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);
        }
    }
}
$vbLabelText   $csharpLabel

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

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

14. 結論とIron XLスペシャルオファー

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つの製品

よくある質問

C#でCSVファイルを読み取るにはどうすればよいですか?

C# で CSV ファイルを読み取るには、NuGet を介して Visual Studio にライブラリをインストールして IronXL を使用できます。 インストール後、WorkBook.LoadCSV メソッドを使用して CSV ファイルを読み込み、解釈します。

CSV とは何であり、なぜ C# で扱うのが複雑な場合があるのですか?

CSV はシンプルなデータ形式ですが、区切り文字が異なるため、扱いが複雑になる可能性があります。IronXL は C# プロジェクトで CSV ファイルの読み取りと解析を簡素化します。

C# を使用して CSV ファイルを Excel に変換できますか?

はい、IronXL を使用すると、CSV を読み込んで WorkBook.SaveAs メソッドで保存することで、CSV ファイルを XLS または XLSX 形式の Excel に変換できます。

C#プロジェクトにIronXLをどのようにインストールしますか?

Visual Studio の NuGet パッケージ マネージャーを使用して IronXL をインストールできます。 'IronXL.Excel' を検索してプロジェクトに追加し、Excel ファイルの操作を開始します。

Excel セル データを C# で特定のデータ型に解析することは可能ですか?

はい、IronXL を使用すると、Int32ValueBoolValue などのメソッドを使用して、Excel セルの値を数値型や Boolean 型などの特定のデータ型に解析できます。

C# を使用して Excel シートの特定のセル範囲からデータを読み取るにはどうすればよいですか?

IronXL を使用すると、ループを使用して範囲を反復処理し、IronXL のインデックス機能を介してセルの値にアクセスすることで、特定のセルからデータを読み取ることができます。

C# で Excel ワークシートを DataTable に変換するにはどうすればよいですか?

IronXL の WorkSheet.ToDataTable メソッドを使用すると、ワークシートを効率的に解析して DataTable オブジェクトに変換し、データ操作を容易にします。

プログラムで Excel ファイルを読み取るために Microsoft Office Interop が必要ですか?

いいえ、IronXL を使用すると、Microsoft Office Interop を使用せずに Excel ファイルを読み取り、操作できます。これにより、単独で効率的なソリューションになります。

Excel および CSV ファイルの操作に IronXL を使用する利点は何ですか?

IronXL は簡単なインストール、Interop への依存なし、複数の Excel 形式のサポート、およびさまざまな .NET Frameworkとの互換性を提供し、CSV および Excel ファイルの処理における生産性を向上させます。

C# で完全な Excel ワークシートを読み取るにはどうすればよいですか?

IronXL を使用して Excel ワークシートを完全に読み取るには、ネストされたループを使用してすべての行と列をトラバースし、IronXL のメソッドを使用してセル値を抽出します。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね