C#でExcelファイルをインポートする方法
IronXLは、C#開発者がたった1行のコードでExcelデータをインポートすることを可能にし、Interopに依存することなくXLSX、CSV、その他のフォーマットをサポートし、データ操作のためにセル、範囲、ワークシートに即座にアクセスできるようにします。
クイックスタート: Excelファイルを即座にロードする
IronXLのタイムアウトのないAPIを使用してメソッドを呼び出すだけで、サポートされているExcelシート(XLSX、CSVなど)を数秒で読み込むことができます。 ワークブックにすぐにアクセスし、必要に応じてセル、範囲、またはシートと対話を開始します。
今すぐ NuGet で PDF を作成してみましょう:
NuGet パッケージ マネージャーを使用して IronXL をインストールします
このコード スニペットをコピーして実行します。
WorkBook wb = IronXL.WorkBook.Load("path/to/data.xlsx");実際の環境でテストするためにデプロイする
Excel データのインポート C#
- IronXLライブラリを使用してデータをインポートする
- C#でExcelデータをインポートする
- 特定のセル範囲のデータをインポートする
- SUM、AVG、MIN、MAXなどの集計関数を使用してExcelデータをインポートします
最小限のワークフロー(5ステップ)
- ExcelファイルをインポートするためのC#ライブラリをダウンロードしてインストールします
- インポートするExcelファイルを準備する
Loadメソッドを使用してスプレッドシートをインポートする- 直感的なAPIを使用して読み込んだExcelファイルを編集する
- 編集した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");指定されたパスの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");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();さて、指定されたExcelファイルから任意のタイプのデータを簡単にインポートできます。 私たちのプロジェクトでExcelファイルのデータをインポートするために可能なすべての側面を探ってみましょう。
C#でExcelデータをインポートする
セルの基本的なインポート方法
これはプロジェクトにExcelファイルデータをインポートする基本的な側面です。 IronXLはセルデータにアクセスする複数の方法を提供し、さまざまなシナリオに柔軟に対応します。
この目的のために、どのセルデータをインポートする必要があるかを指定するセルアドレッシングシステムを使用できます。 Excelファイルから特定のセルアドレスの値を返します:
var cellValue = ws["Cell Address"];var cellValue = ws["Cell Address"];行および列インデックスを使用したデータのインポート
Excelファイルからセルデータを行と列のインデックスを使用してインポートすることもできます。 このコード行は、指定された行と列のインデックスの値を返します。 このアプローチは、プログラムでデータを反復処理する場合に特に役立ちます:
var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];インポートされた値を変数に格納する
インポートしたセルの値を変数に代入するには、次のコードを使用してください。 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;上記の例では、行と列のインデックスは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"];完全な範囲インポートの例
Excelファイルでの範囲操作や、さまざまな方法でのデータ取得についての詳細は、こちらをご覧ください。 次の例では、個々のセル値と範囲の両方をインポートしています:
:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-import.csusing 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();上記のコードは次の出力を表示します:
With the values of Excel file sample.xlsx as:
集計関数を使用した 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 $csharpLabelAverage()// 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 $csharpLabelMin()// 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 $csharpLabelMax()// 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.csusing 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();上記のコードは次の出力を与えます:
そして、私たちのファイルsample.xlsxにはこれらの値が含まれています:
完全なエクセルファイルのデータをインポートする
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();これは、指定された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);これは、構造化されたExcelデータを扱う際にデータ構造の整合性を維持するために不可欠です。
完全なデータセットインポートの例
ExcelデータをDataSetにインポートし、Excel WorkSheetの最初の行をDataTableの列名として使用する完全な例を参照してください:
:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-dataset.csusing 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();ExcelのDataset関数とDataTable関数を使用するのは複雑ですが、C#プロジェクトにファイルデータを組み込むために、より多くの例を用意しています。 高度なシナリオについては、DataTableを介したExcelからSQLへの変換や、SQLデータベースからのExcelのロードに関するガイドをご覧ください。
ライブラリのクイックアクセス
よくある質問
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を直接ダウンロードすることでインストールできます。このライブラリは開発用に無償で提供されており、使い始めるための包括的なドキュメントも提供されています。










