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

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

IronXLは、C#開発者がたった1行のコードでExcelデータをインポートすることを可能にし、Interopに依存することなくXLSX、CSV、その他のフォーマットをサポートし、データ操作のためにセル、範囲、ワークシートに即座にアクセスできるようにします。

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

IronXLのタイムアウトのないAPIを使用してメソッドを呼び出すだけで、サポートされているExcelシート(XLSX、CSVなど)を数秒で読み込むことができます。 ワークブックにすぐにアクセスし、必要に応じてセル、範囲、またはシートと対話を開始します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    PM > Install-Package IronXL.Excel

  2. このコード スニペットをコピーして実行します。

    WorkBook wb = IronXL.WorkBook.Load("path/to/data.xlsx");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう
    arrow pointer

Excel データのインポート C#

  • IronXLライブラリを使用してデータをインポートする
  • C#でExcelデータをインポートする
  • 特定のセル範囲のデータをインポートする
  • SUM、AVG、MIN、MAXなどの集計関数を使用してExcelデータをインポートします
How To Work related to C#でExcelファイルをインポートする方法.

ステップ1

IronXLライブラリのインストール

IronXLはExcelのインポートを簡単にします。

このチュートリアルで使用するIronXL Excelライブラリの機能を使ってデータをインポートします。 ソフトウェアは開発のために無料で利用可能です。 IronXLは包括的なC# Excel APIを提供し、Microsoft OfficeやInteropに依存することなくExcelファイルの操作を簡素化します。 そのため、サーバー環境やクラウドのデプロイメントに最適です。

インストール方法

C#プロジェクトにDLLダウンロードでインストールするか、NuGetパッケージをナビゲートしてください。 インストールに関する詳しいガイダンスについては、使い始めの概要をご覧ください。

Install-Package IronXL.Excel

チュートリアル

プロジェクトでワークシートにアクセスする

基本的なWorkBook読み込みプロセス

今日のプロジェクトでは、ステップ1でインストールしたIronXLソフトウェアを使ってExcelデータをC#アプリケーションにインポートします。このライブラリはさまざまなExcelフォーマットをサポートしており、スプレッドシートをロードするための直感的なメソッドを提供しています。

ステップ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");
$vbLabelText   $csharpLabel

指定されたパスのExcelファイルがwbにロードされます。 この方法では、XLSX、XLS、CSV、TSV、その他の一般的なスプレッドシート形式をサポートしています。

特定のワークシートにアクセスする

次に、プロジェクトにインポートされる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");
$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();
$vbLabelText   $csharpLabel

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


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

セルの基本的なインポート方法

これはプロジェクトにExcelファイルデータをインポートする基本的な側面です。 IronXLはセルデータにアクセスする複数の方法を提供し、さまざまなシナリオに柔軟に対応します。

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

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

行および列インデックスを使用したデータのインポート

Excelファイルからセルデータを行と列のインデックスを使用してインポートすることもできます。 このコード行は、指定された行と列のインデックスの値を返します。 このアプローチは、プログラムでデータを反復処理する場合に特に役立ちます:

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

インポートされた値を変数に格納する

インポートしたセルの値を変数に代入するには、次のコードを使用してください。 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();

// for numeric values
decimal numericValue = ws["B2"].DecimalValue;

// for date values
DateTime dateValue = ws["C2"].DateTimeValue;
// 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();

// for numeric values
decimal numericValue = ws["B2"].DecimalValue;

// for date values
DateTime dateValue = ws["C2"].DateTimeValue;
$vbLabelText   $csharpLabel

上記の例では、行と列のインデックスは0から始まります。より高度なセル操作については、セルのクリアセルのコピーに関するガイドをご覧ください。


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

範囲関数の構文

To import data in a specific range from an Excel WorkBook, use the range function. 開始セルと終了セルのアドレスを記述して、範囲を定義します。 これは、指定された範囲内のすべてのセルの値を返します。 包括的な範囲選択テクニックについては、範囲選択ガイドをご覧ください。

var rangeData = ws["Starting Cell Address:Ending Cell Address"];
var 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();
$vbLabelText   $csharpLabel

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

Excelの範囲B3:B9のインポート結果を示すコンソール出力と中間値、ドイツ、メキシコ、カナダを含む国リスト

With the values of Excel file sample.xlsx as:

売上データを含むExcelスプレッドシート。インポート処理中に範囲選択用にセルが青くハイライトされている。

集計関数を使用した Excel データのインポート

利用可能な集約関数

Excelファイルに集計関数を適用し、その結果得られたデータをインポートする。 IronXLはデータ解析を簡単にする組み込みの数学関数を提供します。 以下は、さまざまな機能とその使用例です:

  • 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();
    $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();
    $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();
    $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();
    $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();
$vbLabelText   $csharpLabel

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

Excelの集計関数を示すコンソール出力:範囲D2からD9のSum=452, Avg=56.5, Min=5, Max=350

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

集計関数分析用の値を含む販売価格列が強調表示された販売データのExcelスプレッドシート

完全なエクセルファイルのデータをインポートする

ToDataSetメソッドについて

完全なExcelファイルのデータをC#プロジェクトにインポートするには、まず、ロードされたWorkBookをDataSetにパースします。 こうすることで、Excelデータ全体がDataSetにインポートされ、ExcelファイルのWorkSheetがDataSet内のDataTableになります。 このアプローチは、データベース操作やデータバインドコントロールを使用する場合に特に役立ちます。 DataSetとしてのインポートおよびエクスポートについては、こちらをご覧ください。

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

これは、指定されたWorkSheetをDataSetにインポートし、要件に従って使用します。 この方法は、複数のシートを同時に扱う場合や、ExcelのデータをADO.NETの操作と統合する場合に特に威力を発揮します。

カラムヘッダの処理

多くの場合、Excelファイルの最初の行が列名として機能します。 この場合、最初の行をDataTableのカラム名にします。 IronXLのToDataSet()関数のbooleanパラメータを以下のように設定してください:

// 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);
$vbLabelText   $csharpLabel

これは、構造化されたExcelデータを扱う際にデータ構造の整合性を維持するために不可欠です。

完全なデータセットインポートの例

ExcelデータをDataSetにインポートし、Excel WorkSheetの最初の行をDataTableの列名として使用する完全な例を参照してください:

: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();
$vbLabelText   $csharpLabel

ExcelのDataset関数とDataTable関数を使用するのは複雑ですが、C#プロジェクトにファイルデータを組み込むために、より多くの例を用意しています。 高度なシナリオについては、DataTableを介したExcelからSQLへの変換や、SQLデータベースからのExcelのロードに関するガイドをご覧ください。


ライブラリのクイックアクセス

IronXLリファレンスを見る

セル、範囲、データセット、データテーブルを介したExcelデータの取得については、IronXLのAPIリファレンスをご覧ください。

IronXLリファレンスを見る
Documentation related to ライブラリのクイックアクセス

よくある質問

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

Microsoft OfficeやInteropの依存関係を必要としないIronXLを使用して、C#でExcelファイルをインポートできます。WorkBook.Load()メソッドにファイル・パスを指定するだけです:WorkBook wb = WorkBook.Load("path/to/data.xlsx").これは、XLSX、XLS、CSV、TSV、その他のフォーマットで動作します。

このC#ライブラリでインポートできるExcelファイル形式は何ですか?

IronXLはXLSX、XLS、CSV、TSV、その他の一般的なスプレッドシート形式を含む様々なExcel形式のインポートをサポートしています。同じWorkBook.Load()メソッドがこれらすべてのフォーマットを自動的に処理します。

サーバーやクラウド環境でExcelデータをインポートできますか?

IronXLは、Microsoft OfficeやInteropの依存関係を必要としないため、サーバー環境やクラウドデプロイメントに最適です。そのため、Webアプリケーション、Azureファンクション、その他のサーバーサイドのシナリオに最適です。

インポート後、どのくらいでExcelデータを扱い始めることができますか?

IronXLのタイムアウトのないAPIを使えば、サポートされているExcelシートをわずか1行のコードで数秒で読み込むことができます。WorkBook.Load()を使えば、すぐにセルや範囲、ワークシートの操作を開始できます。

Excelファイルから特定のセル範囲をインポートできますか?

はい、IronXLではワークブックを読み込んだ後、特定のセル範囲からデータをインポートすることができます。提供される直感的なAPIを使用して、個々のセル、範囲、またはワークシート全体にアクセスできます。

C#用Excelインポートライブラリのインストール方法を教えてください。

IronXLはNuGetパッケージマネージャ、またはDLLを直接ダウンロードすることでインストールできます。このライブラリは開発用に無償で提供されており、使い始めるための包括的なドキュメントも提供されています。

カーティス・チャウ
テクニカルライター

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

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

準備はできましたか?
Nuget ダウンロード 1,802,965 | バージョン: 2025.12 リリース