How to Import Excel Files in C#

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

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

クイックスタート: Excelファイルを即座にロードする

IronXLのタイムアウトなしのAPIを使用して、1回のメソッドコールで、サポートされている任意のExcelシート(XLSX、CSVなど)を数秒でロードできます-Interopや煩雑な作業は不要です。 ワークブックにすぐにアクセスし、必要に応じてセル、範囲、またはシートと対話を開始します。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. Copy and run this code snippet.

    WorkBook wb = IronXL.WorkBook.Load("path/to/data.xlsx");
  3. Deploy to test on your live environment

    Start using IronXL in your project today with a free trial
    arrow pointer
class="learnn-how-section">
class="row">
class="col-sm-6">

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

  • IronXLライブラリを使ってデータをインポート
  • C#でExcelデータをインポート
  • 特定のセル範囲のデータをインポート
  • SUM、AVG、MIN、MAXなどの集計関数を使ったExcelデータのインポート
class="col-sm-6">
class="download-card"> How To Work related to How to Import Excel Files in C#

class="hsg-featured-snippet">

ミニマムワークフロー(5ステップ)

  1. C#ライブラリをダウンロードしてExcelファイルをインポート
  2. インポートするExcelファイルを準備
  3. Loadメソッドを使用してスプレッドシートをインポート
  4. 直感的なAPIを使ってインポートしたExcelファイルを編集
  5. 編集したExcelファイルをさまざまな形式でエクスポート

class="tutorial-segment-title">ステップ 1

1. IronXLライブラリを使ってデータをインポート

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

Install into your C# Project via DLL Download or navigate using the NuGet package.

Install-Package IronXL.Excel


class="tutorial-segment-title">チュートリアルの方法

2. プロジェクトのWorkSheetにアクセス

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

ステップ2では、IronXLのWorkBook.Load()関数を使用して、CSharpプロジェクトにExcel WorkBookをロードします。 この関数内では、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")
$vbLabelText   $csharpLabel

指定されたパスのExcelファイルがwbにロードされます。

次に、プロジェクトにインポートされるExcelファイルの特定のWorkSheetにアクセスする必要があります。 この目的のために、IronXLのGetWorkSheet()関数を使用して、インポートする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")
$vbLabelText   $csharpLabel

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

また、Excel WorkSheetをプロジェクトにインポートする次のような代替方法もあります。

// Import WorkSheet by various methods

// by sheet indexing
WorkSheet mySheet = wb.WorkSheets[SheetIndex];

// get default WorkSheet
WorkSheet defaultSheet = wb.DefaultWorkSheet;

// get first WorkSheet
WorkSheet firstSheet = wb.WorkSheets.First();

// for the first or default sheet
WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault();
// Import WorkSheet by various methods

// by sheet indexing
WorkSheet mySheet = wb.WorkSheets[SheetIndex];

// get default WorkSheet
WorkSheet defaultSheet = wb.DefaultWorkSheet;

// get first WorkSheet
WorkSheet firstSheet = wb.WorkSheets.First();

// for the first or default sheet
WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault();
' Import WorkSheet by various methods

' by sheet indexing
Dim mySheet As WorkSheet = wb.WorkSheets(SheetIndex)

' get default WorkSheet
Dim defaultSheet As WorkSheet = wb.DefaultWorkSheet

' get first WorkSheet
Dim firstSheet As WorkSheet = wb.WorkSheets.First()

' for the first or default sheet
Dim firstOrDefaultSheet As WorkSheet = wb.WorkSheets.FirstOrDefault()
$vbLabelText   $csharpLabel

さて、指定されたExcelファイルから任意のタイプのデータを簡単にインポートできます。 プロジェクトでExcelファイルデータのインポートに使用できるすべての可能な側面を見てみましょう。


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

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

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

var cellValue = ws["Cell Address"];
var cellValue = ws["Cell Address"];
Dim cellValue = ws("Cell Address")
$vbLabelText   $csharpLabel

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

var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
Dim cellValueByIndex = ws.Rows(RowIndex).Columns(ColumnIndex)
$vbLabelText   $csharpLabel

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

// Import Data by Cell Address
// by cell addressing
string val = ws["Cell Address"].ToString();

// by row and column indexing
string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();
// Import Data by Cell Address
// by cell addressing
string val = ws["Cell Address"].ToString();

// by row and column indexing
string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();
' Import Data by Cell Address
' by cell addressing
Dim val As String = ws("Cell Address").ToString()

' by row and column indexing
Dim valWithIndexing As String = ws.Rows(RowIndex).Columns(ColumnIndex).Value.ToString()
$vbLabelText   $csharpLabel

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


4. 特定範囲のExcelデータをインポート

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

var rangeData = ws["Starting Cell Address:Ending Cell Address"];
var rangeData = ws["Starting Cell Address:Ending Cell Address"];
Dim rangeData = ws("Starting Cell Address:Ending Cell Address")
$vbLabelText   $csharpLabel

Excelファイルの範囲に関する作業の詳細については、提供されたコード例を参照してください。

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-import.cs
using IronXL;
using System;

// 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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

class="center-image-wrapper"> 1output related to 4. 特定範囲のExcelデータをインポート

Excelファイルsample.xlsxの値として:

class="center-image-wrapper"> 1excel related to 4. 特定範囲のExcelデータをインポート

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

Excelファイルに集計関数を適用し、これらの集計関数から得られた結果データをインポートすることもできます。 さまざまな関数の例とその使用方法をいくつか紹介します。

  • Sum()

    // To find the sum of a specific cell range
    var sum = ws["Starting Cell Address:Ending Cell Address"].Sum();
    // To find the sum of a specific cell range
    var sum = ws["Starting Cell Address:Ending Cell Address"].Sum();
    ' To find the sum of a specific cell range
    Dim sum = ws("Starting Cell Address:Ending Cell Address").Sum()
    $vbLabelText   $csharpLabel
  • Average()

    // To find the average of a specific cell range
    var average = ws["Starting Cell Address:Ending Cell Address"].Avg();
    // To find the average of a specific cell range
    var average = ws["Starting Cell Address:Ending Cell Address"].Avg();
    ' To find the average of a specific cell range
    Dim average = ws("Starting Cell Address:Ending Cell Address").Avg()
    $vbLabelText   $csharpLabel
  • Min()

    // To find the minimum in a specific cell range
    var minimum = ws["Starting Cell Address:Ending Cell Address"].Min();
    // To find the minimum in a specific cell range
    var minimum = ws["Starting Cell Address:Ending Cell Address"].Min();
    ' To find the minimum in a specific cell range
    Dim minimum = ws("Starting Cell Address:Ending Cell Address").Min()
    $vbLabelText   $csharpLabel
  • Max()

    // To find the maximum in a specific cell range
    var maximum = ws["Starting Cell Address:Ending Cell Address"].Max();
    // To find the maximum in a specific cell range
    var maximum = ws["Starting Cell Address:Ending Cell Address"].Max();
    ' To find the maximum in a specific cell range
    Dim maximum = ws("Starting Cell Address:Ending Cell Address").Max()
    $vbLabelText   $csharpLabel

C#のExcelでの集計関数についてさらに読むことができ、さまざまな方法でデータを引き出す方法を学ぶことができます。

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

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-math-functions.cs
using IronXL;
using System;

// 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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上記のコードは次の出力を与えます:

class="center-image-wrapper"> 2output related to 5. 集計関数によるExcelデータのインポート

そして私たちのファイルsample.xlsxにはこれらの値があります:

class="center-image-wrapper"> 2excel related to 5. 集計関数によるExcelデータのインポート

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

Excelファイルの完全なデータをC#プロジェクトにインポートしたい場合、最初にロードされたWorkBookをDataSetに解析できます。 このようにして、Excelの完全なデータがDataSetにインポートされ、ExcelファイルのWorkSheetsがそのDataSet内でDataTablesになります。 ここにそれがどのように動作するかがあります:

// Import WorkBook into DataSet
DataSet ds = wb.ToDataSet();
// Import WorkBook into DataSet
DataSet ds = wb.ToDataSet();
' Import WorkBook into DataSet
Dim ds As DataSet = wb.ToDataSet()
$vbLabelText   $csharpLabel

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

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

// Import WorkBook into DataSet with first row as ColumnNames
DataSet ds = wb.ToDataSet(true);
// Import WorkBook into DataSet with first row as ColumnNames
DataSet ds = wb.ToDataSet(true);
' Import WorkBook into DataSet with first row as ColumnNames
Dim ds As DataSet = wb.ToDataSet(True)
$vbLabelText   $csharpLabel

これにより、Excelファイルの最初の列がDataTable ColumnNameになります。

ExcelデータをDataSetにインポートし、Excel WorkSheetの最初の列をDataTable ColumnNameとして使用する完全な例を見てみましょう:

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-dataset.cs
using IronXL;
using System;
using System.Data;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import Excel data into a DataSet
DataSet ds = wb.ToDataSet(true);

Console.WriteLine("Excel file data imported to dataset successfully.");
Console.ReadKey();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ExcelのDatasetとDatatableの関数で作業することは複雑であることがありますが、C#プロジェクトにファイルデータを組み込むためのより多くの例が利用可能です。


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

class="tutorial-section">
class="row">
class="col-sm-8">

IronXLリファレンスを探索する

私たちの完全なドキュメントAPIリファレンスで、セル、範囲、データセット、およびデータテーブルを介してExcelデータを取得する方法についてさらに学びましょう。

IronXLリファレンスを探索する
class="col-sm-4">
class="tutorial-image"> Documentation related to class=ライブラリクイックアクセス" class="img-responsive add-shadow img-responsive img-popup" src="/img/svgs/documentation.svg" loading="lazy">

よくある質問

Interopを使用せずにC#でExcelファイルをインポートするにはどうすればいいですか?

IronXLを使用して、Interopを使用せずにC#でExcelファイルをインポートできます。単にWorkBook.Load()メソッドを使用してファイルをロードし、さまざまな関数を通じてデータにアクセスします。GetWorkSheet()のような関数を使用します。

C#プロジェクトでIronXLライブラリをインストールするにはどうすればいいですか?

Package Manager ConsoleでコマンドInstall-Package IronXL.Excelを実行してNuGet経由でIronXLをインストールするか、IronXLのウェブサイトからDLLを直接ダウンロードします。

IronXLで特定のワークシートにアクセスするためのメソッドはどれですか?

IronXLでは、シート名を引数として指定することでGetWorkSheet()メソッドを使用して特定のワークシートにアクセスできます。

C#で特定のセル範囲からデータをインポートするにはどうすればいいですか?

IronXLを使用すると、範囲関数内で開始セルと終了セルのアドレスを定義して、特定のセル範囲からデータを正確に操作してインポートできます。

C#でのExcelデータ管理にIronXLを使用する利点は何ですか?

IronXLは、セル、範囲、集計関数を介してデータをインポートするなど、柔軟なExcelデータ管理機能を提供します。Interopを必要とせずに操作を簡素化し、先進的なデータ処理のための強力なAPIを提供します。

Excelデータをインポートするときに集計関数をどのように使用できますか?

Excelファイルからデータをインポートする際、IronXLを使用してSum、Average、Min、Maxなどの集計関数を実行し、データ分析能力を向上させることができます。

C#でExcelワークシートをDataTableに変換することは可能ですか?

はい、IronXLを使用してワークブックをロードし、ToDataSet()メソッドを利用して、C#でExcelワークシートをDataTableに変換することが可能です。これにより、広範なデータ管理が可能になります。

C#でExcelシートの最初の行をカラムヘッダーとして使用できますか?

IronXLを使用すると、ToDataSet()関数のブールパラメータをtrueに設定することで、Excelシートの最初の行をカラムヘッダーとして使用し、データを構造化されたDataTableに変換できます。

IronXLを使用したExcel操作に関する情報はどこで見つけられますか?

IronXLを使用してExcel操作に関する詳細は、IronXLが提供する包括的なAPIリファレンスを探ることで、データ操作技術や先進的な機能に関する洞察が得られます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はいいですか?
Nuget ダウンロード 1,686,155 | バージョン: 2025.11 ただ今リリースされました