C# で Excel ワークシートを開く

This article was translated from English: Does it need improvement?
Translated
View the article in English

C#のExcelワークシート関数を使用してExcelスプレッドシートを操作し、すべてのファイルタイプを開く方法を学ぶ (.xls.csv.tsv、および.xlsx). Excelワークシートを開き、そのデータを読み取り、プログラムによって操作することは、アプリケーションを開発している多くの人にとって非常に重要です。 コードの行数を減らし、応答時間を速くしたいすべての開発者へのソリューションはこちらです。


C#でExcelワークシートを開く方法

  1. Excelファイルを読み取るためにExcelライブラリをインストールしてください。

  2. 既存のExcelファイルを Workbook オブジェクトにロードします。

  3. デフォルトのExcelワークシートを設定します。

  4. Excel ワークブックから値を読み取る。

  5. 値を適切に処理し、表示してください。

    ステップ 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
VB   C#

指定されたパスの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")
VB   C#

指定された 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()
VB   C#

さて、開いたExcelの WorkSheet からデータを取得する必要があります。


4. ワークシートからデータを取得

以下の方法で開いたExcelのWorkSheetからデータを取得できます:

  1. ExcelのWorkSheetの特定のセルの値を取得します。

  2. 特定の範囲内でデータを取得する。

  3. 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()
VB   C#

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

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
VB   C#

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

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")
VB   C#

次に、開いている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
VB   C#

上記のコードは B2 から B10 までのデータを次のように取得します。

Excelファイル sample.xlsxB2 から B10 までの値を確認できます。

4.3. 行からデータを取得する

特定の行に対して範囲を記述することもできます。 例えば:

WorkSheet ["A1:E1"]
WorkSheet ["A1:E1"]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["A1:E1"]
VB   C#

これは 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
VB   C#

上記のコードの出力は、開いているExcelの WorkSheet の全てのセル値を表示します。


チュートリアル クイック アクセス

APIリファレンスリソース

IronXL API Referenceリソースを、プロジェクトで使用するすべての関数やクラス、ならびに名前空間、メソッドフィールド、列挙型、および機能セットのガイドとして使用してください。

APIリファレンスリソース