C# Excel ファイルを解析
アプリケーションビルドにExcelスプレッドシートを使用する場合、しばしばデータに基づいて結果を分析し、C#内でExcelファイルのデータを解析して必要な形式に変換し、正しい結果を得る必要があります。 C#環境でデータを異なる形式にパースするのは、IronXLの使用と以下の手順により簡単にできます。
C#でExcelファイルを解析する方法
-
Excelファイルを処理するためにExcelライブラリをインストールします。
-
Workbook
オブジェクトを開いてExcelファイルを追加します。 -
既定の
Worksheet
を選択してください。 -
Excelの
Workbook
から値を読み取る。 - 値を正確に処理して表示してください。
ステップ 1
IronXLをVisual Studio用にダウンロード
最初のステップはVisual Studio用IronXLをダウンロードまたはインストール方法NuGet開発プロジェクト向けの無料メソッドの両方。
Install-Package IronXL.Excel
チュートリアルの方法
エクセルファイルを読み込む
次に、WorkBook.Load
を使用して、ExcelファイルをC#プロジェクトにロードします。()IronXLの関数 次のようにExcelファイルのパスを指定するために1つの文字列パラメータを渡します:
//Load Excel file
WorkBook wb = WorkBook.Load("Path");
//Load Excel file
WorkBook wb = WorkBook.Load("Path");
'Load Excel file
Dim wb As WorkBook = WorkBook.Load("Path")
Excelファイルはwb
に読み込まれます。 特定のWorkSheetを開くことができます。
3. Excelワークシートを開く
Excelファイルのワークシートを開くには、WorkBook.GetWorkSheet
を使用します。()` 関数。 ワークシート名を指定する1つの文字列パラメーターが必要です。 このように使うことができます:
//specify WorkSheet
WorkSheet ws = Wb.GetWorkSheet("SheetName");
//specify WorkSheet
WorkSheet ws = Wb.GetWorkSheet("SheetName");
'specify WorkSheet
Dim ws As WorkSheet = Wb.GetWorkSheet("SheetName")
wb
は私たちがステップ1で定義した WorkBook です。
4. Excelファイルからデータを取得
これで、オープンなExcelワークシートから、さまざまな方法で任意の種類のデータを簡単に取得できるようになりました。 以下の例では、特定のセルの値にアクセスし、文字列に解析する方法を示します:
//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()
上記の行で ws
は、ステップ2で定義されたワークシートです。これは簡単なアプローチですが、さらに詳細を読み、異なる例を参照することができます。Excel ファイルのデータにアクセスします。
Excelデータを数値にパースする
次に、Excelファイルのデータを解析する方法について説明します。
まず初めに、数値型のExcelデータをどのように処理し、必要な形式に解析するかを見ていきます。 以下のIronXLのパーサー関数のリストを使用して、プロジェクトに適したものを選択してください。
データタイプ | メソッド | 説明 |
---|---|---|
int | ワークシート ["CellAddress"].IntValue | Excelセルの値を`Int`に解析する必要があるときに使用されます。 |
Int32 (int32) | WorkSheet["CellAddress"].Int32Value | Excelセルの値を`Int32`に解析する必要があるとき。 |
Int64 (インターフェース64) | ワークシート["CellAddress"].Int64Value | プロジェクトで大きな数値を使用したい場合。 |
浮動小数点数 | WorkSheet["CellAddress"].FloatValue | 小数点以下の値も重要な場合に使用されます。 |
ダブル | ワークシート["CellAddress"].DoubleValue | 精度の高い数値データを取得したい場合。 |
0進数 | ワークシート ["CellAddress"].DecimalValue | 小数点の後に桁数が多すぎる場合、最も高精度な結果を得たい場合は。 |
以下は、C#でこれらの関数を使用してExcelファイルのデータを解析する方法の例です。
/**
Parse into Numeric Values
anchor-parse-excel-data-into-numeric-values
**/
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();
}
/**
Parse into Numeric Values
anchor-parse-excel-data-into-numeric-values
**/
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();
}
'''
'''Parse into Numeric Values
'''anchor-parse-excel-data-into-numeric-values
'''*
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
このコードは次の出力を表示します:
ここで、Excelファイル sample.xlsx
の値を見ることができます。
6. Excelデータをブール値に解析する
ExcelファイルデータをBoolean型に解析するために、IronXLはBoolValue
関数を提供しています。 以下のように使用できます:
/**
Parse into Boolean Values
anchor-parse-excel-data-into-boolean-values
**/
bool Val = ws ["Cell Address"].BoolValue;
/**
Parse into Boolean Values
anchor-parse-excel-data-into-boolean-values
**/
bool Val = ws ["Cell Address"].BoolValue;
'''
'''Parse into Boolean Values
'''anchor-parse-excel-data-into-boolean-values
'''*
Dim Val As Boolean = ws ("Cell Address").BoolValue
上述の例で説明されている ws
はワークシートです。 上記の関数は、値を True
または False
として返します。
注意:セルの値をブール型に解析したい場合、Excelファイルの値が(0
, 1
) または (True
, False
) 形式であることを確認してください。
7. ExcelファイルをC#コレクションに解析する
IronXLを使用することにより、Excelファイルのデータを次の種類のCSharpコレクションに解析することができます:
データタイプ | メソッド | 説明 |
---|---|---|
配列 | ワークシート["From:To"].ToArray() | この関数は、Excelファイルのデータを配列に解析するために使用されます。データを配列に変換するExcelファイルのセル範囲を指定します。 |
データテーブル | ワークシート.ToDataTable() | これは、完全なExcelワークシートをDataTableに解析し、必要に応じてデータを使用するために使用されます。 |
データセット | WorkBook.ToDataSet() | 完全なExcelワークブックをDataSetに解析することができます。この方法では、ExcelファイルのWorkSheetがDataSetのDataTableになります。 |
各コレクションタイプにExcelファイルのデータを解析するそれぞれの例を一つずつ見ていきましょう。
エクセルデータを配列に解析する
IronXLは、指定された範囲のExcelファイルデータを配列に解析する簡単な方法を提供します。 この目的のために、データを配列に変換する From
から To
までのセルアドレスを指定します。 次のように実行することができます:
var array = WorkSheet ["From:To"].ToArray();
var array = WorkSheet ["From:To"].ToArray();
Dim array = WorkSheet ("From:To").ToArray()
配列から特定の項目にアクセスする場合、次のようにします:
string item = array [ItemIndex].Value.ToString();
string item = array [ItemIndex].Value.ToString();
Dim item As String = array (ItemIndex).Value.ToString()
それは、インデックスを使って簡単にアイテムにアクセスできることを明確に示しています。 Excelファイルのデータを配列に解析し、その中から特定の項目を選択する方法の例を見てみましょう。
/**
Parse into Array
anchor-parse-excel-data-into-array
**/
using IronXL;
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();
}
/**
Parse into Array
anchor-parse-excel-data-into-array
**/
using IronXL;
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();
}
'''
'''Parse into Array
'''anchor-parse-excel-data-into-array
'''*
Imports IronXL
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
上記のコードは次の出力を表示します:
Excelファイル sample.xlsx
の範囲値、B6
から F6
までは次のようになります:
7.2. Excelワークシートをデータテーブルに解析する
IronXL の美しさは、特定の Excel WorkSheet を簡単に DataTable に変換できる点にあります。 この目的のために、.ToDataTable
を使用できます。()次のようにIronXLの機能:
DataTable dt = WorkSheet.ToDataTable();
DataTable dt = WorkSheet.ToDataTable();
Dim dt As DataTable = WorkSheet.ToDataTable()
それはExcelワークシートをDataTable dt
に解析します。 この場合、Excelファイルの最初の行をDataTableの列名として使用したい場合、次のように設定できます:
DataTable dt=WorkSheet.ToDataTable(True);
DataTable dt=WorkSheet.ToDataTable(True);
Dim dt As DataTable=WorkSheet.ToDataTable([True])
.ToDataTable
のブールパラメーター()`関数は、Excelファイルの最初の行がDataTableのColumnNameになることを指定します。 次を使用しての作業にさらに深く取り組むことができますC# での ExcelWorksheet を DataTable に変換
以下は、Excelワークシートをデータテーブルに解析する方法の例です:
/**
Parse into DataTable
anchor-parse-excel-worksheet-into-datatable
**/
using IronXL;
using System.Data;
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);
}
/**
Parse into DataTable
anchor-parse-excel-worksheet-into-datatable
**/
using IronXL;
using System.Data;
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);
}
'''
'''Parse into DataTable
'''anchor-parse-excel-worksheet-into-datatable
'''*
Imports IronXL
Imports System.Data
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
7.3. ExcelファイルをDataSetに解析する
完全なExcelファイルをDataSetに解析したい場合、この目的のために.ToDataSet
メソッドを使用できます。()IronXLの関数 以下のように使用できます:
DataSet ds = WorkBook.ToDataSet();
DataSet ds = WorkBook.ToDataSet();
Dim ds As DataSet = WorkBook.ToDataSet()
注: ExcelファイルをDataSetに解析する場合、Excelファイル内のすべてのワークシートがこのDataSetのDataTableになります。 ExcelファイルをDataSetに解析する例を見てみましょう:
/**
Parse File into DataSet
anchor-parse-excel-file-into-dataset
**/
using IronXL;
using System.Data;
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];
}
/**
Parse File into DataSet
anchor-parse-excel-file-into-dataset
**/
using IronXL;
using System.Data;
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];
}
'''
'''Parse File into DataSet
'''anchor-parse-excel-file-into-dataset
'''*
Imports IronXL
Imports System.Data
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
詳しくは、エクセル SQL データセットこれらのファイルを操作する。