IRONXLの使用

C#でCSVファイルを読み込む方法: チュートリアル

更新済み 12月 9, 2021
共有:

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

CSVとは何ですか?

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


CSVファイルをC#で読み込む方法

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

  1. Visual Studioで、プロジェクトメニューを選択してください

  2. NuGetパッケージの管理

  3. IronXL.Excelを検索

  4. インストール

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

    Visual StudioのNuGetパッケージマネージャーでIronXLを検索

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

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("Csv_To_Excel.xlsx")
VB   C#

出力:

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

カンマ区切りでCSVファイルを出力

コードの説明:

A WorkBook オブジェクトが作成されます。 について LoadCSV(ロードCSV) 次に、WorkBookオブジェクトのmethodでCSVの名前と、その形式、および読み取られるCSVファイルで使用される区切り文字を指定します。 この場合、カンマが区切り文字として使用されます。

A ワークシート オブジェクトが作成されます。 これはCSVファイルの内容が配置される場所です。 その後、ファイルは新しい名前と形式で保存されます。

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

Microsoft Excelに表示されるデータ


2. Excelファイル用IronXL

プロジェクトにIronXLを使用して、C#でExcelファイル形式を簡単に扱いましょう。 以下がお客様のご希望の日本語訳です:

ご利用いただけます。 直接ダウンロードを使用してIronXLをインストールする. または、~~~を使用することもできます。 Visual Studio 用の NuGet インストール. このソフトウェアは開発用として無料で使用できます。

Install-Package IronXL.Excel

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

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

WorkBook wb = WorkBook.Load("sample.xlsx");//Excel file path
WorkBook wb = WorkBook.Load("sample.xlsx");//Excel file path
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'Excel file path
VB   C#

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

WorkSheet ws = wb.GetWorkSheet("Sheet1"); //by sheet name
WorkSheet ws = wb.GetWorkSheet("Sheet1"); //by sheet name
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'by sheet name
VB   C#

Excelワークシートwsを取得した後、それから任意のデータを抽出し、すべてのExcel機能を実行することができます。 データは、Excelワークシート ws からアクセスできます。

using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    foreach (var cell in ws ["A2:A10"])
    {
        Console.WriteLine("value is: {0}", cell.Text);
    }
    Console.ReadKey();
}
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    foreach (var cell in ws ["A2:A10"])
    {
        Console.WriteLine("value is: {0}", cell.Text);
    }
    Console.ReadKey();
}
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	For Each cell In ws ("A2:A10")
		Console.WriteLine("value is: {0}", cell.Text)
	Next cell
	Console.ReadKey()
End Sub
VB   C#

Excelワークシートをデータテーブルとして読み込む

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

DataTable dt = WorkSheet.ToDataTable();
DataTable dt = WorkSheet.ToDataTable();
Dim dt As DataTable = WorkSheet.ToDataTable()
VB   C#

以下のネームスペースを使用してください

using IronXL;
using System.Data;
using IronXL;
using System.Data;
Imports IronXL
Imports System.Data
VB   C#

次のコードを書いてください。

static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel file Name
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
    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();
    }
}
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel file Name
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
    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();
    }
}
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("Weather.xlsx") ' Your Excel file Name
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	Dim dt As DataTable = ws.ToDataTable(True) 'parse sheet1 of sample.xlsx file into datatable
	For Each row As DataRow In dt.Rows 'access rows
		For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
			Console.Write(row (i) & "  ")
		Next i
		Console.WriteLine()
	Next row
End Sub
VB   C#

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

DataTableオブジェクトからのコンソール出力

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

static void Main(string [] args)
{          
    WorkBook wb = WorkBook.Load("sample.xlsx");
    DataSet ds = wb.ToDataSet(); //Parse WorkBook wb into DataSet
    foreach (DataTable dt in ds.Tables)
    {
        Console.WriteLine(dt.TableName);
    }
}
static void Main(string [] args)
{          
    WorkBook wb = WorkBook.Load("sample.xlsx");
    DataSet ds = wb.ToDataSet(); //Parse WorkBook wb into DataSet
    foreach (DataTable dt in ds.Tables)
    {
        Console.WriteLine(dt.TableName);
    }
}
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ds As DataSet = wb.ToDataSet() 'Parse WorkBook wb into DataSet
	For Each dt As DataTable In ds.Tables
		Console.WriteLine(dt.TableName)
	Next dt
End Sub
VB   C#

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

DataSetオブジェクトからシート名にアクセス

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

static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("Weather.xlsx");
    DataSet ds = wb.ToDataSet();//behave complete Excel file as DataSet
    foreach (DataTable dt in ds.Tables)//behave 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();
        }
    }
}
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("Weather.xlsx");
    DataSet ds = wb.ToDataSet();//behave complete Excel file as DataSet
    foreach (DataTable dt in ds.Tables)//behave 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();
        }
    }
}
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("Weather.xlsx")
	Dim ds As DataSet = wb.ToDataSet() 'behave complete Excel file as DataSet
	For Each dt As DataTable In ds.Tables 'behave Excel WorkSheet as DataTable.
		For Each row As DataRow In dt.Rows 'corresponding Sheet's Rows
			For i As Integer = 0 To dt.Columns.Count - 1 'Sheet columns of corresponding row
				Console.Write(row (i) & "  ")
			Next i
			Console.WriteLine()
		Next row
	Next dt
End Sub
VB   C#

C#でCSVファイルを読み取る方法: チュートリアル, 図6: Datasetオブジェクトのコンソール出力

Datasetオブジェクトのコンソール出力

C# .NET での CSV 解析

CSVは、フィールド内の改行の扱いや、フィールドが引用符で囲まれているために簡単な文字列分割アプローチを完全に妨げるなど、多くの問題を抱えています。 最近、C# .NETでCSVを変換する際に、string.Splitを使用する代わりにカスタマイズ可能な区切り文字を指定するオプションを発見しました。(',')値をカンマで区切るには`を使用します。

C#でCSVデータを読み取る

このプロセスは、次のファイルに進む読者を案内します。trygetfieldでCSVフィールドファイルを読み取ります。 CSVファイルのフィールドフィールドをレコードフィールドとしてread関数を使用します。

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
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();
}
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
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();
}
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
Dim dt As DataTable = ws.ToDataTable(True) 'parse sheet1 of sample.xlsx file into datatable
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ")
	Next i
	Console.WriteLine()
Next row
VB   C#

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

DataTable からのコンソール出力

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

これで、さまざまな方法を使用して、開いているExcelワークシートから任意のタイプのデータを簡単に取得できます。 以下の例では、特定のセルの値にアクセスして、それを 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();
'Access the Data by Cell Addressing
Dim val As String = ws ("Cell Address").ToString()
VB   C#

上記の行で、wsはステップ2で定義されたワークシート(WorkSheet)です。これは「シンプル」なアプローチですが、より多くの情報を読み、さまざまな例を見ることができます。 Excelファイルデータにアクセスする.

8. C#でExcelファイルを解析する方法

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

using IronXL;
static void Main(string [] args)
{
    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;

    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;
static void Main(string [] args)
{
    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;

    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();
}
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'Parse Excel cell value into string
	Dim str_val As String = ws ("B3").Value.ToString()
	'Parse Excel cell value into int32
	Dim int32_val As Int32 = ws ("G3").Int32Value
	'Parse Excel cell value into Decimal
	Dim decimal_val As Decimal = ws ("E5").DecimalValue

	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()
End Sub
VB   C#

9. Excelデータを数値およびブール値に解析する方法

次に、Excelファイルのデータを解析する方法について説明します。 まず、数値データを含むExcelデータの処理方法を見てから、それを必要な形式に解析する方法を見ていきます。

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

各データ型の要約表

static void Main(string [] args)
{
    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;
    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();
}
static void Main(string [] args)
{
    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;
    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();
}
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'Parse Excel cell value into string
	Dim str_val As String = ws ("B3").Value.ToString()
	'Parse Excel cell value into int32
	Dim int32_val As Int32 = ws ("G3").Int32Value
	'Parse Excel cell value into Decimal
	Dim decimal_val As Decimal = ws ("E5").DecimalValue
	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()
End Sub
VB   C#

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

C#でCSVファイルを読み取る方法: チュートリアル, 図9: 正しいデータ型でコンソール出力

コンソール出力で正しいデータ型

ここで、Excelファイル sample.xlsx の値を確認できます。

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

Excelで正しいデータ型を表示する

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

bool Val = ws ["Cell Address"].BoolValue;
bool Val = ws ["Cell Address"].BoolValue;
Dim Val As Boolean = ws ("Cell Address").BoolValue
VB   C#

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

static void Main(string [] args)
{
   WorkBook wb = WorkBook.Load("sample.xlsx");
   WorkSheet ws = wb.GetWorkSheet("Sheet1");
   var array = ws ["B6:F6"].ToArray();
   int item = array.Count();
   string total_items = array [0].Value.ToString();
   Console.WriteLine("First item in the array: {0}", item);
   Console.WriteLine("Total items from B6 to F6: {0}",total_items);
   Console.ReadKey();
}
static void Main(string [] args)
{
   WorkBook wb = WorkBook.Load("sample.xlsx");
   WorkSheet ws = wb.GetWorkSheet("Sheet1");
   var array = ws ["B6:F6"].ToArray();
   int item = array.Count();
   string total_items = array [0].Value.ToString();
   Console.WriteLine("First item in the array: {0}", item);
   Console.WriteLine("Total items from B6 to F6: {0}",total_items);
   Console.ReadKey();
}
Shared Sub Main(ByVal args() As String)
   Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
   Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
   Dim array = ws ("B6:F6").ToArray()
   Dim item As Integer = array.Count()
   Dim total_items As String = array (0).Value.ToString()
   Console.WriteLine("First item in the array: {0}", item)
   Console.WriteLine("Total items from B6 to F6: {0}",total_items)
   Console.ReadKey()
End Sub
VB   C#

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

IronXLの優れた機能の一つは、特定のExcel WorkSheetを簡単にDataTableに変換できることです。 この目的のために、私たちは `.ToDataTable()もちろん、英語のテキストを教えていただけますでしょうか? 次のようにIronXLの機能:

static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //parse sheet1 of sample.xlsx file into DataTable.
    //we set parameter true of ToDataTable() function,so first row of Excel file becomes columnname of DataTable
    DataTable dt = ws.ToDataTable(true);
}
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //parse sheet1 of sample.xlsx file into DataTable.
    //we set parameter true of ToDataTable() function,so first row of Excel file becomes columnname of DataTable
    DataTable dt = ws.ToDataTable(true);
}
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'parse sheet1 of sample.xlsx file into DataTable.
	'we set parameter true of ToDataTable() function,so first row of Excel file becomes columnname of DataTable
	Dim dt As DataTable = ws.ToDataTable(True)
End Sub
VB   C#

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

完全なExcelファイルをDataSetに解析したい場合、この目的のために使用できるのは .ToDataSet(データセット)()もちろん、英語のテキストを教えていただけますでしょうか? IronXLの関数。

static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //parse WorkBook wb into DataSet
    DataSet ds = wb.ToDataSet();
    //we also can get DataTable from ds which is actually WorkSheet as:
    DataTable dt=ds.Tables [0];
}
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //parse WorkBook wb into DataSet
    DataSet ds = wb.ToDataSet();
    //we also can get DataTable from ds which is actually WorkSheet as:
    DataTable dt=ds.Tables [0];
}
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	'parse WorkBook wb into DataSet
	Dim ds As DataSet = wb.ToDataSet()
	'we also can get DataTable from ds which is actually WorkSheet as:
	Dim dt As DataTable=ds.Tables (0)
End Sub
VB   C#

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

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

static void Main(string [] args)
{
    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();
}
static void Main(string [] args)
{
    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();
}
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'get specified range values by loop
	For Each item In ws ("B3:B8")
		Console.WriteLine("Value is: {0}", item)
	Next item
	Console.ReadKey()
End Sub
VB   C#

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

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

コンソール出力でB3:B8の範囲内のすべての値にアクセスする

以下の値を含むExcelファイル sample.xlsx を生成します:

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

sample.xlsxからのデータ表示

さらに、IronXLは、セルとのやり取りに多くのExcelメソッドと互換性があります。 スタイリングとボーダー, 数式関数, 条件付き書式設定 利用可能なデータからチャートを作成するため。

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

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

static void Main(string [] args)
{
   WorkBook wb = WorkBook.Load("sample.xlsx");
   WorkSheet ws = wb.GetWorkSheet("Sheet1");
   foreach (var item in ws ["G1:G10"])
   {
   Console.WriteLine("  Condition is: {0}", item.BoolValue);
   }
   Console.ReadKey();
}
static void Main(string [] args)
{
   WorkBook wb = WorkBook.Load("sample.xlsx");
   WorkSheet ws = wb.GetWorkSheet("Sheet1");
   foreach (var item in ws ["G1:G10"])
   {
   Console.WriteLine("  Condition is: {0}", item.BoolValue);
   }
   Console.ReadKey();
}
Shared Sub Main(ByVal args() As String)
   Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
   Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
   For Each item In ws ("G1:G10")
   Console.WriteLine("  Condition is: {0}", item.BoolValue)
   Next item
   Console.ReadKey()
End Sub
VB   C#

これから得られる出力は:

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

ブールデータの取得からのコンソール出力

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

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

コンソール出力と比較するためのExcelサンプル

12. 完全なExcelワークシートを読み取る方法

行と列のインデックスを使用して完全なExcelワークシートを読み取ることは簡単です。 この目的のために、二つのループを使用します。一つはすべての行を走査するためのもので、もう一つは特定の行のすべての列を走査するためのものです。 次に、Excelワークシート全体のすべてのセル値を簡単に取得できます。

static void Main(string [] args)
{
    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();
}
static void Main(string [] args)
{
    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();
}
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("Weather.xlsx") ' your Excel File Name
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'Traverse all rows of Excel WorkSheet
	For i As Integer = 0 To ws.Rows.Count() - 1
		'Traverse all columns of specific Row
		For j As Integer = 0 To ws.Columns.Count() - 1
			'Get the values
			Dim val As String = ws.Rows (i).Columns (j).Value.ToString()
			Console.WriteLine("Value of Row {0} and Column {1} is: {2}", i, j,val)
		Next j
	Next i
	Console.ReadKey()
End Sub
VB   C#

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

すべての値を読み込んだ際のコンソール出力

ExcelファイルをInteropなしで読む方法

IronXL (アイアンXL)は C#用Excelライブラリ .NETは、開発者がMicrosoft.Office.Interop.Excelを使用せずに、XLSおよびXLSXドキュメントからExcelデータを読み取り編集することを可能にします。

APIを使用すると、次の用途で直感的にExcelファイルを作成、読み取り、操作、保存、およびエクスポートできます:

  1. .NET Framework 4.5以上

  2. .NET Core 2 以上

  3. .NET Standard

  4. Xamarin(ザマリン)

  5. Windowsモバイル

  6. モノ

  7. & Azureクラウドホスティング

  8. Blazor

  9. .NET MAUI

    次の名前空間を追加してください:

using IronXL;
using System;
using System.Linq;
using IronXL;
using System;
using System.Linq;
Imports IronXL
Imports System
Imports System.Linq
VB   C#

以下のコードをmain関数内に記述してください。

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);
}
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);
}
Dim workbook As WorkBook = WorkBook.Load("Weather.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()

'Select cells easily in Excel notation and return the calculated value
Dim cellValue As Integer = sheet ("A2").IntValue
' Read from Ranges of cells elegantly.
For Each cell In sheet ("A2:A10")
   Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
VB   C#

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

各セルからのコンソール出力

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

14. 結論およびIron XL特別オファー

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

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

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

Iron Suiteの5製品

< 以前
Excelで行を隔行でハイライトする方法
次へ >
Excelでセルをロックする方法:ステップバイステップチュートリアル

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 977,734 View Licenses >