C#でExcelファイルをインポートする方法

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

開発者として、Excelファイルからデータをインポートし、それを使用してアプリケーションおよびデータ管理の要件を満たす必要があることがよくあります。 多くのコード行を必要とせずに、IronXLは必要なデータを正確にC#プロジェクトに直接インポートし、それをプログラムによって操作する簡単な方法を提供します。


ステップ 1

IronXL ライブラリでデータをインポートする

このチュートリアルで使用するIronXL Excelライブラリが提供する機能を使用してデータをインポートします。 ソフトウェアは開発用に無料で利用可能です。

インストール into your DLLダウンロードによるC#プロジェクト またはナビゲート NuGetパッケージを使用して.

Install-Package IronXL.Excel

チュートリアルの方法

プロジェクト用のワークシートにアクセス

今日のプロジェクトのニーズに合わせて、ステップ1でインストールしたIronXLソフトウェアを使用し、ExcelデータをC#アプリケーションにインポートします。

ステップ2では、WorkBook.Loadを使用してCSharpプロジェクトにExcel WorkBookを読み込みます。()IronXLの関数 この関数では、Excel WorkBookのパスを文字列パラメーターとして渡します。このように:

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

指定されたパスのExcelファイルがwbに読み込まれます。

次に、プロジェクトにデータをインポートするExcelファイルの特定のワークシートにアクセスする必要があります。 そのためには、GetWorkSheet を使用することができます。()IronXLの関数 この関数には、インポートするWorkBookのシートを指定するために、シート名を文字列パラメータとして渡します。

//specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
//specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
'specify sheet name of Excel WorkBook
Dim ws As WorkSheet = wb.GetWorkSheet("SheetName")
VB   C#

WorkSheetはwsとしてインポートされ、wbは上記のコードサンプルで定義したWorkBookです。

プロジェクトにExcelワークシートをインポートするには、以下のような別の方法もあります。

/**
Import WorkSheet 
anchor-access-worksheet-for-project
**/
//by sheet indexing
WorkBook.WorkSheets [SheetIndex];
//get default  WorkSheet
WorkBook.DefaultWorkSheet;
//get first WorkSheet
WorkBook.WorkSheets.First();
//for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault();
/**
Import WorkSheet 
anchor-access-worksheet-for-project
**/
//by sheet indexing
WorkBook.WorkSheets [SheetIndex];
//get default  WorkSheet
WorkBook.DefaultWorkSheet;
//get first WorkSheet
WorkBook.WorkSheets.First();
//for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault();
'''
'''Import WorkSheet 
'''anchor-access-worksheet-for-project
'''*
'by sheet indexing
WorkBook.WorkSheets (SheetIndex)
'get default  WorkSheet
WorkBook.DefaultWorkSheet
'get first WorkSheet
WorkBook.WorkSheets.First()
'for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault()
VB   C#

これで、指定されたExcelファイルからあらゆる種類のデータを簡単にインポートできます。 以下の方法で、プロジェクトにExcelファイルデータをインポートするすべての可能な側面を見てみましょう。


C#でExcelデータをインポート

これはプロジェクト内でExcelファイルのデータをインポートする基本的な側面です。

この目的のために、どのセルデータをインポートする必要があるかを指定するために、セルアドレッシングシステムを使用できます。 それは、Excelファイルの特定のセルアドレスの値を返します。

WorkSheet ["Cell Address"];
WorkSheet ["Cell Address"];
WorkSheet ("Cell Address")
VB   C#

行と列のインデックスを使用してExcelファイルからセルデータをインポートすることもできます。 このコード行は、指定された行および列のインデックスの値を返します。

WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
VB   C#

インポートしたセルの値を変数に割り当てたい場合は、次のコードを使用できます。

/**
Import Data by Cell Address
anchor-import-excel-data-in-c-num
**/
//by cell addressing
string val = WorkSheet ["Cell Address"].ToString();
//by row and column indexing
string val = WorkSheet.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
/**
Import Data by Cell Address
anchor-import-excel-data-in-c-num
**/
//by cell addressing
string val = WorkSheet ["Cell Address"].ToString();
//by row and column indexing
string val = WorkSheet.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
'''
'''Import Data by Cell Address
'''anchor-import-excel-data-in-c-num
'''*
'by cell addressing
Dim val As String = WorkSheet ("Cell Address").ToString()
'by row and column indexing
Dim val As String = WorkSheet.Rows (RowIndex).Columns (ColumnIndex).Value.ToString()
VB   C#

上記の例では、行と列のインデックスは0から始まります。


特定の範囲のExcelデータをインポートする

特定の範囲のデータをExcel WorkBookからインポートしたい場合、range関数を使用することで簡単に行うことができます。 範囲を定義するためには、開始セルと終了セルのアドレスを記述する必要があります。 この方法で、指定された範囲内にあるすべてのセルの値を返します。

WorkSheet ["starting Cell Address : Ending Cell Address"];
WorkSheet ["starting Cell Address : Ending Cell Address"];
WorkSheet ("starting Cell Address : Ending Cell Address")
VB   C#

以下を日本語に翻訳してください:

For more about working with IronPDF for .NET, visit our official website or refer to the comprehensive documentation provided. Whether you are converting HTML to PDF, merging PDF files, or adding dynamic content to your PDF documents, IronPDF for .NET offers all the tools you need.

詳細については、公式ウェブサイトをご覧いただくか、提供されている包括的なドキュメントを参照してください。HTMLをPDFに変換する場合、PDFファイルをマージする場合、またはPDFドキュメントに動的コンテンツを追加する場合でも、IronPDF for .NETは必要なすべてのツールを提供します。 Excelファイルの範囲 コードの例を確認してください。

/**
Import Data by Range
anchor-import-excel-data-of-specific-range
**/
using IronXL;
static void Main(string [] args)
{
    //import Excel WorkBook
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //specify WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //import data of specific cell
    string val = ws ["A4"].Value.ToString();
    Console.WriteLine("Import Value of A4 Cell address: {0}",val);
    Console.WriteLine("import Values in Range From B3 To B9 :\n");
    //import data in specific range
    foreach (var item in ws ["B3:B9"])
    {
        Console.WriteLine(item.Value.ToString());
    }

    Console.ReadKey();
}
/**
Import Data by Range
anchor-import-excel-data-of-specific-range
**/
using IronXL;
static void Main(string [] args)
{
    //import Excel WorkBook
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //specify WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //import data of specific cell
    string val = ws ["A4"].Value.ToString();
    Console.WriteLine("Import Value of A4 Cell address: {0}",val);
    Console.WriteLine("import Values in Range From B3 To B9 :\n");
    //import data in specific range
    foreach (var item in ws ["B3:B9"])
    {
        Console.WriteLine(item.Value.ToString());
    }

    Console.ReadKey();
}
'''
'''Import Data by Range
'''anchor-import-excel-data-of-specific-range
'''*
Imports Microsoft.VisualBasic
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'import Excel WorkBook
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	'specify WorkSheet
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'import data of specific cell
	Dim val As String = ws ("A4").Value.ToString()
	Console.WriteLine("Import Value of A4 Cell address: {0}",val)
	Console.WriteLine("import Values in Range From B3 To B9 :" & vbLf)
	'import data in specific range
	For Each item In ws ("B3:B9")
		Console.WriteLine(item.Value.ToString())
	Next item

	Console.ReadKey()
End Sub
VB   C#

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

Excelファイル sample.xlsx の値は次のとおりです:


集計関数によるExcelデータのインポート

Excelファイルに集計関数を適用し、その集計関数の結果データをインポートすることもできます。 以下はいくつかの異なる機能とその使用方法の例です。

  • 合計()もちろん、英語のテキストを教えていただけますでしょうか?
 //to find the sum of specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Sum();
 //to find the sum of specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Sum();
'to find the sum of specific cell range 
WorkSheet ("Starting Cell Address : Ending Cell Address").Sum()
VB   C#
  • 平均()もちろん、英語のテキストを教えていただけますでしょうか?
 //to find the average of specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
 //to find the average of specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
'to find the average of specific cell range 
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
VB   C#
  • ミン()もちろん、英語のテキストを教えていただけますでしょうか?
 //to find the Min In specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
 //to find the Min In specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
'to find the Min In specific cell range 
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
VB   C#
  • Max()もちろん、英語のテキストを教えていただけますでしょうか?
 //to find the Max in specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
 //to find the Max in specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
'to find the Max in specific cell range 
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
VB   C#

以下のリンクから、IronPDF for .NETの使用方法についてさらに詳しく読むことができます。 C#用Excelの集計関数 さまざまな方法でデータを取得する方法について詳しく学びましょう。

これらの機能を適用してExcelファイルのデータをインポートする方法の例を見てみましょう。

/**
Import Data by Aggregate Function
anchor-import-excel-data-by-aggregate-functions
**/
using IronXL;
static void Main(string [] args)
{
    //Import Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //Specify WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Import Excel file data by applying aggregate functions
    decimal Sum = ws ["D2:D9"].Sum();
    decimal Avg = ws ["D2:D9"].Avg();
    decimal Min = ws ["D2:D9"].Min();
    decimal Max = ws ["D2:D9"].Max();
    Console.WriteLine("Sum From D2 To D9: {0}", Sum);
    Console.WriteLine("Avg From D2 To D9: {0}", Avg);
    Console.WriteLine("Min From D2 To D9: {0}", Min);
    Console.WriteLine("Max From D2 To D9: {0}", Max);
    Console.ReadKey();
}
/**
Import Data by Aggregate Function
anchor-import-excel-data-by-aggregate-functions
**/
using IronXL;
static void Main(string [] args)
{
    //Import Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //Specify WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Import Excel file data by applying aggregate functions
    decimal Sum = ws ["D2:D9"].Sum();
    decimal Avg = ws ["D2:D9"].Avg();
    decimal Min = ws ["D2:D9"].Min();
    decimal Max = ws ["D2:D9"].Max();
    Console.WriteLine("Sum From D2 To D9: {0}", Sum);
    Console.WriteLine("Avg From D2 To D9: {0}", Avg);
    Console.WriteLine("Min From D2 To D9: {0}", Min);
    Console.WriteLine("Max From D2 To D9: {0}", Max);
    Console.ReadKey();
}
'''
'''Import Data by Aggregate Function
'''anchor-import-excel-data-by-aggregate-functions
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'Import Excel file
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	'Specify WorkSheet
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'Import Excel file data by applying aggregate functions
	Dim Sum As Decimal = ws ("D2:D9").Sum()
	Dim Avg As Decimal = ws ("D2:D9").Avg()
	Dim Min As Decimal = ws ("D2:D9").Min()
	Dim Max As Decimal = ws ("D2:D9").Max()
	Console.WriteLine("Sum From D2 To D9: {0}", Sum)
	Console.WriteLine("Avg From D2 To D9: {0}", Avg)
	Console.WriteLine("Min From D2 To D9: {0}", Min)
	Console.WriteLine("Max From D2 To D9: {0}", Max)
	Console.ReadKey()
End Sub
VB   C#

上記のコードは次の出力を生成します:

以下のような値を持つ sample.xlsx ファイルがあります:


6. 完全なExcelファイルデータをインポートする

C#プロジェクトにExcelファイルのデータを完全にインポートしたい場合、まず読み込んだWorkBookをDataSetに解析することができます。 この方法で、完全なExcelデータがDataSetにインポートされ、ExcelファイルのWorkSheetsがそのDataSetのDataTablesになります。 ここにその動作があります:

//import WorkBook into dataset
DataSet ds = WorkBook.ToDataSet();
//import WorkBook into dataset
DataSet ds = WorkBook.ToDataSet();
'import WorkBook into dataset
Dim ds As DataSet = WorkBook.ToDataSet()
VB   C#

このようにして、指定されたWorkSheetは、必要に応じて使用できるDataSetにインポートされます。

しばしば、Excelファイルの最初の列はColumnNameとして使用されます。 この場合、最初の列を DataTable ColumnName として設定する必要があります。 この操作を行うために、 ToDataSet のブールパラメータを設定します。()次のようにIronXLの機能:

ToDataSet(true);
ToDataSet(true);
ToDataSet(True)
VB   C#

これは、Excelファイルの最初の列をDataTableのColumnNameにします。

次の例では、Excelデータをデータセットにインポートし、Excelワークシートの最初の列をDataTableのカラム名として使用する方法を完全に示します。

/**
Import to Dataset
anchor-import-complete-excel-file-data
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    DataSet ds = new DataSet();
    ds = wb.ToDataSet(true);
    Console.WriteLine("Excel file data imported to dataset successfully.");
    Console.ReadKey();
}
/**
Import to Dataset
anchor-import-complete-excel-file-data
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    DataSet ds = new DataSet();
    ds = wb.ToDataSet(true);
    Console.WriteLine("Excel file data imported to dataset successfully.");
    Console.ReadKey();
}
'''
'''Import to Dataset
'''anchor-import-complete-excel-file-data
'''*
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 ds As New DataSet()
	ds = wb.ToDataSet(True)
	Console.WriteLine("Excel file data imported to dataset successfully.")
	Console.ReadKey()
End Sub
VB   C#

以下の内容を日本語に翻訳してください:


Working with 
``` [エクセルデータセットおよびデータテーブル](https://ironsoftware.com/csharp/excel/#read-excel) 関数は複雑な場合がありますが、C#プロジェクトにファイルデータを組み込むための追加の例が用意されています。
<hr class="separator">

<h4 class="tutorial-segment-title">ライブラリ クイック アクセス</h4>

<div class="tutorial-section">
  <div class="row">
    <div class="col-sm-8">
      <h3>IronXLリファレンスを探る</h3>
      <p>IronXLのAPIリファレンス全書にて、セル、範囲、データセット、およびデータテーブルを通じてExcelデータを取得する方法について詳しく学ぶことができます。</p>
      <a class="doc-link" href="/csharp/excel/object-reference/api/" target="_blank"> IronXLリファレンスを探る <i class="fa fa-chevron-right"></i></a>
    </div>
    <div class="col-sm-4">
      <div class="tutorial-image">
        <img style="max-width: 110px; width: 100px; height: 140px;" alt="" class="img-responsive add-shadow" src="/img/svgs/documentation.svg" width="100" height="140">
      </div>
    </div>
  </div>
</div>