C#でExcelファイルをインポートする方法
IronXLは、C#開発者がたった1行のコードでExcelデータをインポートすることを可能にし、Interopに依存することなくXLSX、CSV、その他のフォーマットをサポートし、データ操作のためにセル、範囲、ワークシートに即座にアクセスできるようにします。
クイックスタート:Excelファイルを瞬時にロードIronXLのタイムアウトのないAPIを使用してメソッドを呼び出すだけで、サポートされているExcelシート(XLSX、CSVなど)を数秒で読み込むことができます。 ワークブックにすぐにアクセスし、必要に応じてセル、範囲、またはシートと対話を開始します。
-
1Install IronXL with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
WorkBook wb = IronXL.WorkBook.Load("path/to/data.xlsx");Dim wb As WorkBook = WorkBook.Load("path/to/data.xlsx")Dim wb As WorkBook = WorkBook.Load("path/to/data.xlsx") -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronXL を使い始めましょう無料トライアル
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パッケージをナビゲートしてください。 インストールに関する詳しいガイダンスについては、使い始めの概要をご覧ください。
チュートリアル
プロジェクトでワークシートにアクセスする
基本的なWorkBook読み込みプロセス
今日のプロジェクトでは、ステップ1でインストールしたIronXLソフトウェアを使ってExcelデータをC#アプリケーションにインポートします。このライブラリはさまざまなExcelフォーマットをサポートしており、スプレッドシートをロードするための直感的なメソッドを提供しています。
ステップ2では、IronXLの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")' Load Excel file
Dim wb As WorkBook = WorkBook.Load("Path")指定されたパスにある Excel ファイルが wb に読み込まれます。 この方法では、XLSX、XLS、CSV、TSV、その他の一般的なスプレッドシート形式をサポートしています。
特定のワークシートにアクセスする
次に、プロジェクトにデータをインポートするExcelファイルの特定のWorkSheetにアクセスする必要があります。 この目的のために、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")' Specify sheet name of Excel WorkBook
Dim ws As WorkSheet = wb.GetWorkSheet("SheetName")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()' 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()さて、指定されたExcelファイルから任意のタイプのデータを簡単にインポートできます。 私たちのプロジェクトでExcelファイルのデータをインポートするために可能なすべての側面を探ってみましょう。
C#でExcelデータをインポートする
セルの基本的なインポート方法
これはプロジェクトにExcelファイルデータをインポートする基本的な側面です。 IronXLはセルデータにアクセスする複数の方法を提供し、さまざまなシナリオに柔軟に対応します。
この目的のために、どのセルデータをインポートする必要があるかを指定するセルアドレッシングシステムを使用できます。 Excelファイルから特定のセルアドレスの値を返します:
var cellValue = ws["Cell Address"];var cellValue = ws["Cell Address"];Dim cellValue = ws("Cell Address")Dim cellValue = ws("Cell Address")行および列インデックスを使用したデータのインポート
Excelファイルからセルデータを行と列のインデックスを使用してインポートすることもできます。 このコード行は、指定された行と列のインデックスの値を返します。 このアプローチは、プログラムでデータを反復処理する場合に特に役立ちます:
var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];Dim cellValueByIndex = ws.Rows(RowIndex).Columns(ColumnIndex)Dim 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;' 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()
' for numeric values
Dim numericValue As Decimal = ws("B2").DecimalValue
' for date values
Dim dateValue As DateTime = ws("C2").DateTimeValue' 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()
' for numeric values
Dim numericValue As Decimal = ws("B2").DecimalValue
' for date values
Dim dateValue As DateTime = ws("C2").DateTimeValue上記の例では、行と列のインデックスは0から始まります。より高度なセル操作については、セルのクリアとセルのコピーに関するガイドをご覧ください。
特定の範囲からデータをインポートする
範囲関数の構文
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")Dim rangeData = ws("Starting Cell Address:Ending Cell Address")完全な範囲インポートの例
Excelファイルでの範囲操作や、さまざまな方法でのデータ取得についての詳細は、こちらをご覧ください。 次の例では、個々のセル値と範囲の両方をインポートしています:
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();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();Imports IronXL
Imports System
' 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 :" & vbCrLf)
' Import data in specific range
For Each item In ws("B3:B9")
Console.WriteLine(item.Value.ToString())
Next
Console.ReadKey()Imports IronXL
Imports System
' 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 :" & vbCrLf)
' Import data in specific range
For Each item In ws("B3:B9")
Console.WriteLine(item.Value.ToString())
Next
Console.ReadKey()上記のコードは次の出力を表示します:
Excelファイル sample.xlsx の値は以下の通りです:
集計関数を使用した 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();' To find the sum of a specific cell range Dim 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() -
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()' To find the average of a specific cell range Dim average = ws("Starting Cell Address:Ending Cell Address").Avg() -
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()' To find the minimum in a specific cell range Dim minimum = ws("Starting Cell Address:Ending Cell Address").Min() -
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()' To find the maximum in a specific cell range Dim maximum = ws("Starting Cell Address:Ending Cell Address").Max()
複数の集約関数を一緒に使用する
C#のExcelで集計関数を使用し、さまざまな方法でデータを取得する方法については、こちらをご覧ください。 これらの関数は、要約統計の生成やインポートされたデータの検証に特に役立ちます。
これらの関数を適用してExcelファイルのデータをインポートする例を参照してください:
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();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();Imports IronXL
Imports System
' 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()Imports IronXL
Imports System
' 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()上記のコードは次の出力を与えます:
また、ファイル sample.xlsx には以下の値が含まれています:
完全なエクセルファイルのデータをインポートする
ToDataSetメソッドについて
ExcelファイルのデータをC#プロジェクトに完全にインポートするには、まず読み込んだDataSetにパースします。 これにより、Excel ファイル内の DataSet および WorkSheets への完全な Excel データインポートは、その DataSet 内で DataTables となります。 このアプローチは、データベース操作やデータバインドコントロールを使用する場合に特に役立ちます。 DataSet としてのインポートおよびエクスポートについて詳しくはこちらをご覧ください。
// 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()' Import WorkBook into DataSet
Dim ds As DataSet = wb.ToDataSet()これにより、指定された WorkSheet が DataSet にインポートされ、要件に応じて使用できるようになります。 この方法は、複数のシートを同時に扱う場合や、ExcelのデータをADO.NETの操作と統合する場合に特に威力を発揮します。
カラムヘッダの処理
多くの場合、Excelファイルの最初の行が列名として機能します。 この場合、1行目の DataTable を列名として扱ってください。 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);netnetこれにより、Excelファイルの最初の行 DataTable が列名となります。これは、構造化されたExcelデータを扱う際にデータ構造の整合性を維持するために不可欠です。
完全なデータセットインポートの例
ExcelデータをDataSetにインポートし、Excel DataTableの列名として使用する完全な例をご覧ください:
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();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();Imports IronXL
Imports System
Imports System.Data
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Import Excel data into a DataSet
Dim ds As DataSet = wb.ToDataSet(True)
Console.WriteLine("Excel file data imported to dataset successfully.")
Console.ReadKey()Imports IronXL
Imports System
Imports System.Data
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Import Excel data into a DataSet
Dim ds As DataSet = wb.ToDataSet(True)
Console.WriteLine("Excel file data imported to dataset successfully.")
Console.ReadKey()Excelの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を直接ダウンロードすることでインストールできます。このライブラリは開発用に無償で提供されており、使い始めるための包括的なドキュメントも提供されています。
Can the first row of an Excel file be used as column names in IronXL?
Yes, when importing Excel data into a DataSet, you can set the first row as column names by using the ToDataSet(true) method in IronXL.
How do I import numeric or date values from Excel cells using IronXL?
In IronXL, you can import numeric values using .DecimalValue and date values using .DateTimeValue from specific Excel cells to ensure they are in the correct data type.
What is the advantage of using IronXL for Excel import in C# over Interop?
IronXL requires no Interop dependencies, making it ideal for server environments and cloud deployments where Microsoft Office installation is not feasible.
Is IronXL available for free for development purposes?
Yes, IronXL is available for free for development purposes, providing a comprehensive C# Excel API to simplify working with Excel files.
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。



