C# で Excel ワークシートを開く
C#のExcelワークシート関数を使用してExcelスプレッドシートを操作し、すべてのファイルタイプを開く方法を学ぶ(.xls
、.csv
、.tsv
、および.xlsx
). Excelワークシートを開き、そのデータを読み取り、プログラムによって操作することは、アプリケーションを開発している多くの人にとって非常に重要です。 コードの行数を減らし、応答時間を速くしたいすべての開発者へのソリューションはこちらです。
C#でExcelファイルを開く方法
- Excelファイルを開くためのC#ライブラリをインストール
- Excelファイルを読み込む ワークブック オブジェクト
- 探索する多くの方法 ワークシート 開いたExcelファイルから
- 選択されたセルデータにアクセス ワークシート オブジェクト
- 行と列の範囲からデータを取得する
C#でExcelワークシートを開く方法
-
Excelファイルを読み取るためにExcelライブラリをインストールしてください。
-
既存のExcelファイルを
Workbook
オブジェクトにロードします。 -
デフォルトのExcelワークシートを設定します。
-
Excel ワークブックから値を読み取る。
- 値を適切に処理し、表示してください。
ステップ 1
1. Excel C# ライブラリにアクセス
アクセスするDLL経由のExcel C#ライブラリまたは、お好みの方法を使用してインストールしてください。NuGet マネージャー. IronXLライブラリにアクセスしてプロジェクトに追加したら、以下のすべての関数を使用してC#でExcelワークシートを開くことができます。
Install-Package IronXL.Excel
チュートリアルの方法
エクセルファイルを読み込む
WorkBook.Load
を使用して()プロジェクトにExcelファイルを読み込むためのIronXLの関数。 この関数は、開くExcelファイルのパスとなる文字列パラメータを必要とします。 こちらをご覧ください:
WorkBook wb = WorkBook.Load("Path");//Excel file path
WorkBook wb = WorkBook.Load("Path");//Excel file path
Dim wb As WorkBook = WorkBook.Load("Path") 'Excel file path
指定されたパスのExcelファイルがwb
にロードされます。 次に、開くExcelワークシートを指定する必要があります。
エクセルワークシートを開く
特定のExcelファイルのWorkSheet
を開くために、IronXLはWorkBook.GetWorkSheet
メソッドを提供しています。()` 関数。 これを使用すると、名前によって簡単にワークシートを開くことができます。
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
Dim ws As WorkSheet = WorkBook.GetWorkSheet("SheetName")
指定された WorkSheet
は、そのすべてのデータと共に ws
で開きます。 Excelファイルの特定のWorkSheet
を開くための他の方法もいくつかあります:
/**
Open Excel Worksheet
anchor-open-excel-worksheet
**/
//by sheet index
WorkSheet ws = wb.WorkSheets [0];
//for the default
WorkSheet ws = wb.DefaultWorkSheet;
//for the first sheet:
WorkSheet ws = wb.WorkSheets.First();
//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();
/**
Open Excel Worksheet
anchor-open-excel-worksheet
**/
//by sheet index
WorkSheet ws = wb.WorkSheets [0];
//for the default
WorkSheet ws = wb.DefaultWorkSheet;
//for the first sheet:
WorkSheet ws = wb.WorkSheets.First();
//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();
'''
'''Open Excel Worksheet
'''anchor-open-excel-worksheet
'''*
'by sheet index
Dim ws As WorkSheet = wb.WorkSheets (0)
'for the default
Dim ws As WorkSheet = wb.DefaultWorkSheet
'for the first sheet:
Dim ws As WorkSheet = wb.WorkSheets.First()
'for the first or default sheet:
Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
さて、開いたExcelの WorkSheet
からデータを取得する必要があります。
4. ワークシートからデータを取得
以下の方法で開いたExcelのWorkSheet
からデータを取得できます:
-
Excelの
WorkSheet
の特定のセルの値を取得します。 -
特定の範囲内でデータを
取得
する。 -
WorkSheet
からすべてのデータを取得する。それでは、これらの例を用いて、さまざまな方法でデータを取得する方法を一つずつ見ていきましょう:
4.1. 特定のセル値を取得
ExcelのWorkSheet
からデータを取得する最初の方法は、特定のセルの値を取得することです。 以下のようにアクセスできます:
string val = ws ["Cell Address"].ToString();
string val = ws ["Cell Address"].ToString();
Dim val As String = ws ("Cell Address").ToString()
「ws」は、次の例で見るように、Excelファイルの「WorkSheet」です。 特定のセル値は、「行インデックス」および「列インデックス」を指定することでアクセスすることもできます。
string val=ws.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
string val=ws.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
Dim val As String=ws.Rows (RowIndex).Columns (ColumnIndex).Value.ToString()
C#プロジェクトでExcelファイルを開き、特定のセル値を取得する方法の例を見てみましょう。
/**
Get Cell Value
anchor-get-specific-cell-value
**/
using IronXL;
static void Main(string [] args)
{
//Load Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
//Open WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Get value By Cell Address
Int32 int_val= ws ["C6"].Int32Value;
//Get value by Row and Column Address
string str_val=ws.Rows [3].Columns [1].Value.ToString();
Console.WriteLine("Getting Value by Cell Address: {0}",int_val);
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val);
Console.ReadKey();
}
/**
Get Cell Value
anchor-get-specific-cell-value
**/
using IronXL;
static void Main(string [] args)
{
//Load Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
//Open WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Get value By Cell Address
Int32 int_val= ws ["C6"].Int32Value;
//Get value by Row and Column Address
string str_val=ws.Rows [3].Columns [1].Value.ToString();
Console.WriteLine("Getting Value by Cell Address: {0}",int_val);
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val);
Console.ReadKey();
}
'''
'''Get Cell Value
'''anchor-get-specific-cell-value
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
'Load Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
'Open WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'Get value By Cell Address
Dim int_val As Int32= ws ("C6").Int32Value
'Get value by Row and Column Address
Dim str_val As String=ws.Rows (3).Columns (1).Value.ToString()
Console.WriteLine("Getting Value by Cell Address: {0}",int_val)
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val)
Console.ReadKey()
End Sub
このコードは次の出力を表示します:
sample.xlsx
ファイルのrow {rowIndex}
(行番号が{rowIndex}
)の値は以下の通りです:[3]列[1]``と
C6` セル:```
行および列のインデックスは0
から始まります。
ExcelのWorkSheets
を開いて特定のコールデータを取得する方法について、さらに読むことができます。C#でExcelデータを読み取る既に開いているExcelワークシートから。
4.2. 特定の範囲からデータを取得する
それでは、IronXLを使用して開いたExcelの WorkSheet
から特定の範囲のデータを取得する方法を見てみましょう。
IronXLは特定の範囲でデータを取得するためのインテリジェントな方法を提供します。 私たちは単に from
から to
の値を指定するだけです。
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ("From Cell Address : To Cell Address")
次に、開いているExcelの WorkSheet
からデータを取得するために range を使用する方法の例を見てみましょう。
/**
Get Data from Range
anchor-get-data-from-specific-range
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//specify the range
foreach (var cell in ws ["B2:B10"])
{
Console.WriteLine("value is: {0}", cell.Text);
}
Console.ReadKey();
}
/**
Get Data from Range
anchor-get-data-from-specific-range
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//specify the range
foreach (var cell in ws ["B2:B10"])
{
Console.WriteLine("value is: {0}", cell.Text);
}
Console.ReadKey();
}
'''
'''Get Data from Range
'''anchor-get-data-from-specific-range
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'specify the range
For Each cell In ws ("B2:B10")
Console.WriteLine("value is: {0}", cell.Text)
Next cell
Console.ReadKey()
End Sub
上記のコードは B2
から B10
までのデータを次のように取得します。
Excelファイル sample.xlsx
の B2
から B10
までの値を確認できます。
4.3. 行からデータを取得する
特定の行に対して範囲を記述することもできます。 例えば:
WorkSheet ["A1:E1"]
WorkSheet ["A1:E1"]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["A1:E1"]
これは A1
から E1
までのすべての値を表示します。 以下についてさらに読むC# エクセル範囲異なる行および列の識別方法についての作業方法。
ワークシートから全データを取得する
IronXLを使用すると、開いているExcel WorkSheetからすべてのセルデータを取得するのも簡単です。 このタスクでは、行と列のインデックスを使って各セルの値にアクセスする必要があります。 次の例を見てみましょう。全てのWorkSheet
セルを走査し、その値にアクセスします。
この例では、基本的に2つのループが動作しています: 一つはExcel WorkSheet
の各行を走査するためのもので、もう一つは特定の行の各列を走査するためのものです。 このようにして、各セルの値に簡単にアクセスすることができます。
/**
Get All Data
anchor-get-all-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample2.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//access all rows of open Excel WorkSheet
for (int i = 0; i < ws.Rows.Count(); i++)
{
//access all columns of specific row
for (int j = 0; j < ws.Columns.Count(); j++)
{
//Access each cell for specified column
Console.WriteLine(ws.Rows [i].Columns [j].Value.ToString());
}
}
Console.ReadKey();
}
/**
Get All Data
anchor-get-all-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample2.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//access all rows of open Excel WorkSheet
for (int i = 0; i < ws.Rows.Count(); i++)
{
//access all columns of specific row
for (int j = 0; j < ws.Columns.Count(); j++)
{
//Access each cell for specified column
Console.WriteLine(ws.Rows [i].Columns [j].Value.ToString());
}
}
Console.ReadKey();
}
'''
'''Get All Data
'''anchor-get-all-data-from-worksheet
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample2.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'access all rows of open Excel WorkSheet
For i As Integer = 0 To ws.Rows.Count() - 1
'access all columns of specific row
For j As Integer = 0 To ws.Columns.Count() - 1
'Access each cell for specified column
Console.WriteLine(ws.Rows (i).Columns (j).Value.ToString())
Next j
Next i
Console.ReadKey()
End Sub
上記のコードの出力は、開いているExcelの WorkSheet
の全てのセル値を表示します。
チュートリアル クイック アクセス
APIリファレンスリソース
IronXL API Referenceリソースを、プロジェクトで使用するすべての関数やクラス、ならびに名前空間、メソッドフィールド、列挙型、および機能セットのガイドとして使用してください。
APIリファレンスリソース