フッターコンテンツにスキップ
IRONXLの使用

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

Microsoft Excel をインストールせずに XLS、XLSX、CSV ファイルを読み取る .NET ライブラリであるIronXLを使用して、C# で Excel ファイルをインポートします。 WorkBook.Load("file.xlsx")を使用するだけでファイルを開き、 sheet["A1"]のような直感的な構文でセル データにアクセスできます。

Microsoft Excel は、データの整理、プレゼンテーション、分析に役立つ多目的スプレッドシート ソフトウェアです。 ただし、C# でプログラム的に Excel を操作するのは、特に異なるスプレッドシート ファイル タイプを扱う場合や、展開サーバー上に Microsoft Office がインストールされていない場合には、困難な場合があります。 IronXL ソフトウェア ライブラリは、 XLSX 、XLS、 CSV ファイルなどのさまざまな形式をサポートし、C# アプリケーションで Excel ファイルをインポートして読み取る包括的なソリューションを提供します。

IronXL とは何ですか? Excel インポートに IronXL を使用する必要があるのはなぜですか?

IronXL は、使いやすさ、正確性、速度を重視した .NET Excel ライブラリです。 超高速のパフォーマンスで、Excel ドキュメントのインポートと読み取り、 Excel ファイルの効率的な作成と編集に役立ちます。 Microsoft Office Interop を必要とする従来のアプローチとは異なり、IronXL は MS Office Interop に依存せずに独立して動作します。 つまり、Excel をインストールしなくても、 Excel ファイルを読み取るためのすべての機能を利用できるようになります。 これにより、IronXL は、ASP.NET Web アプリケーション、デスクトップ アプリケーション、またはクラウドベースのソリューションを構築する場合でも、開発者が C# アプリケーションで Excel ファイルをインポートして読み取るための強力なツールになります。

IronXL は、Windows、 LinuxmacOSDockerAzureAWSなどのすべてのプラットフォームで利用できます。 すべての .NET Framework バージョンと互換性があり、最新の .NET Core および .NET 5+ 環境をサポートします。 IronXL は、コンソール、デスクトップ、Web ASP.NET アプリケーション、およびBlazor アプリケーションに統合できる多目的ライブラリです。 XLS および XLSX ファイル、XSLT および XLSM、CSV、TSV などのさまざまなワークブック形式をサポートしているため、スプレッドシート ファイル タイプ間で変換する必要があるシナリオに最適です。

IronXL が Excel インポートに不可欠な主な機能は何ですか?

C# で Excel ブックをインポートするにはどうすればよいですか?

Excel インポートを開始する前に何が必要ですか?

C# で IronXL を使用して Excel ファイルを読み取るには、コンピューターに次のコンポーネントがインストールされていることを確認してください。

  1. Visual Studio - これは C# .NET アプリケーションを開発するための公式 IDE です。 Visual Studio は、Excel ファイルの操作を容易にする優れたIntelliSenseサポートとデバッグ ツールを提供します。 Visual Studio はMicrosoft のウェブサイトからダウンロードしてインストールできます。 Community Edition は無料で、ほとんどの開発ニーズに十分対応できます。

  2. IronXL - これは、C# で指定されたパスにある Excel シートを操作するのに役立つライブラリです。 使用する前に C# プログラムにインストールする必要があります。 IronXL は、 NuGet Web サイトから簡単にダウンロードするか、Visual Studio ツールの NuGet パッケージの管理インターフェイスから直接インストールできます。 手動でインストールする場合は、 .NET Excel DLLファイルを直接ダウンロードすることもできます。

実稼働環境での展開では、透かしを削除して完全な機能を有効にするために、ライセンス キーを適用する必要があります。 試用版で開発とテストを行うことができます。

コードにどの名前空間を追加すればよいですか?

Visual Studio と IronXL をインストールしたら、IronXL アセンブリを参照してソース コードで IronXL を使用します。 新しいプロジェクトでIronXLの機能が使用される場所のファイルの先頭に以下の行を追加します。

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

この単一の名前空間のインポートにより、Excel 操作に必要なすべてのコア機能にアクセスできるようになります。 グラフ条件付き書式などの特定の Excel 機能を使用している場合は、IronXL ライブラリから追加の名前空間をインポートする必要がある場合があります。

Excel ファイルを読み込んで開くにはどうすればよいでしょうか?

Microsoft Excel スプレッドシートは、Excel ワークブックとも呼ばれます。 各ワークブックには複数のワークシート (シートとも呼ばれます) が含まれており、1 つのワークシートには行と列に整理された表形式のセルとそれぞれの値が含まれています。 Excel ファイルを開いて読み取るには、IronXL ライブラリにあるWorkBookクラスとLoadメソッドを使用してファイルを読み込みます。 コードは次の通りです:

// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
    WorkBook streamWorkbook = WorkBook.Load(stream);
}

// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
    WorkBook streamWorkbook = WorkBook.Load(stream);
}

// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");
$vbLabelText   $csharpLabel

This opens the Excel file in the workbook instance reference variable. ワークブックには複数のワークシートを含めることができるため、さまざまな方法でアクセスできます。 次のコードは、シート インスタンス変数で最初のワークシートを開きます。

// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();

// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");

// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];
// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();

// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");

// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];
$vbLabelText   $csharpLabel

これによりExcelファイルの最初のシートが開かれ、Excelデータがこのシートから読み取られたり書き込まれたりすることができます。 より高度なシナリオでは、複数のワークシートを管理したり、プログラムで新しいスプレッドシートを作成したりする必要がある場合があります。

開いた Excel ファイル

! Excel スプレッドシートには、名前、役職、給与の列を持つ従業員データが表示され、さまざまな役職と給与を持つ 5 人の従業員レコードが含まれています。 C# を使用してインポートされる従業員情報を含むサンプル Excel ファイル。 データには、名前、役職(マネージャー、ディレクター、従業員、社長)、および対応する給与値が含まれます。

インポート後に特定のセルの値を読み取るにはどうすればよいですか?

Excel ファイルをインポートすると、データを読み取る準備が整います。 IronXLを使用してC#でExcelデータを読み取るのは非常に簡単です。 標準的な Excel 表記法 ("A1"、"B2"など) でセル参照番号を指定するだけで、Excel セルの値を読み取ることができます。 ライブラリは、予想されるデータ型に応じてセル値にアクセスする複数の方法を提供します。

次のコードは、参照番号 "C2" のセルの値を取得します。

// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);

// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;

// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;
// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);

// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;

// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;
$vbLabelText   $csharpLabel

出力は以下の通りです。

! Excel ファイルの読み取り操作の出力を示す Microsoft Visual Studio デバッグ コンソール ウィンドウ。ファイル パスと完了メッセージが表示されます。 C# で Excel ファイルを正常に読み取った後のデバッグ コンソールの出力。 プログラムの実行が完了し、ユーザー入力による終了を待機しています。

それでは、開いたExcelファイルのセル範囲からデータを読み取りましょう。IronXLを使えば、使い慣れたExcel表記法を使ってセル範囲を簡単に操作できます。 コードは次の通りです:

// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
    Console.WriteLine($"Row cell value: {cell.Value}");
}

// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
    Console.WriteLine($"Column A value: {cell.Value}");
}
// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
    Console.WriteLine($"Row cell value: {cell.Value}");
}

// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
    Console.WriteLine($"Column A value: {cell.Value}");
}
$vbLabelText   $csharpLabel

コードは非常にシンプルでクリーンでクリアです。 foreach ループで示されているように、簡単な構文でセルの範囲を参照できます: sheet["A2:A6"] 各セルを反復してその値を取得できます。 ここで、コンソール出力の列 A の 2 行目から 6 行目までの名前が表示されます。

Microsoft Visual Studio デバッグ コンソールに Excel セル A2 から A6 を読み取った出力が表示され、John、Sara、Peter、Mathew、Katherine という名前が表示されていますC# を使用して名前を含む Excel セル範囲 (A2:A6) の読み取りに成功したことを示すコンソール出力

セル値の読み取りと書き込みの詳細については、 C# の例で Excel ファイルを読み取る方法に関するこのチュートリアルをご覧ください。 数式の適用名前付き範囲の操作などの高度な機能を試すこともできます。

ワークシート全体を一度にインポートするにはどうすればよいですか?

IronXL を使用すると、行と列のインデックスを使用して一度に Excel シートを読み取ることができます。 これは、ワークシート内のすべてのデータを処理する必要がある場合や、 Excel を CSV や JSON などの他の形式に変換する場合に特に便利です。 次の IronXL コード サンプルは、コンソール出力で Excel ファイル データ全体を同じ形式で取得するのに役立ちます。

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}

// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row => 
    row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}

// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row => 
    row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();
$vbLabelText   $csharpLabel

大きな Excel ファイルの場合は、パフォーマンスの向上とデータ操作の容易化のために、 DataTableまたはDataSetオブジェクトの使用を検討してください。

// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers

// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers

// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

出力ファイル

! Microsoft Visual Studio デバッグ コンソールに、名前、役職、給与の列を含む従業員データ テーブルが表示され、Excel ファイルから読み取った 5 人の従業員レコードが表示されています。 コンソール出力には、Excel ファイルからインポートされた従業員データが、名前、役職、給与情報を含む適切な形式で正常に表示されます。

.

Excel ファイルをインポートした後の次の手順は何ですか?

この記事では、Microsoft Excel をインストールせずに C# で Excel ファイルをインポートして読み取る方法を説明しました。 個々のセルからワークシート全体まで、Excel スプレッドシートからデータを読み取るさまざまな方法について説明しました。 IronXL は、Excel をインストールしなくても C# でExcel ファイルを作成するのにも役立ちます。

Excel データを正常にインポートした後、追加機能を調べてみることをお勧めします。

*データ処理*:セル範囲の並べ替えフィルターの適用行と列のグループ化 データ検証: データの整合性を確保するためにデータ検証ルールを実装します 書式設定:セルのスタイル条件付き書式数値の書式を適用します グラフとビジュアル**:グラフを作成したり、画像を追加してデータのプレゼンテーションを強化します *セキュリティ:ワークブックまたは個々のワークシートをパスワードで保護します

IronXLはすべてのMicrosoft Excelドキュメント関連タスクのオールインワンソリューションを提供します。 数式の計算、文字列または数値の並べ替え、トリミングと追加、検索と置換、セルの結合と結合解除、ファイルの保存などを実行できます。 セルの値を編集したり、スプレッドシートのデータを検証するとともにセルのデータ形式を設定したりすることもできます。 また、 CSV ファイルもサポートしており、Excel データをシームレスに操作できます。

エンタープライズ アプリケーションの場合、 Docker コンテナーAzure FunctionsAWS Lambdaなどのさまざまなプラットフォームのデプロイメント オプションを検討することを検討してください。

IronXL は無料で試用でき、Lite パッケージでは$799から商用利用のライセンスを取得できます。 このライブラリには、C# アプリケーションで Excel ファイル操作をすぐに開始できるようにするための優れたドキュメントチュートリアルコード例が用意されています。

よくある質問

Interopを使わずにC#でExcelファイルをインポートして読むにはどうすればよいですか?

C#でIronXLライブラリを使ってExcelファイルをインポートして読むことができます。WorkBook.Load("file.xlsx")を使ってExcelファイルをロードし、Microsoft Excelをインストールせずにデータにアクセスして処理できます。

IronXLライブラリはどのプラットフォームに対応していますか?

IronXLはすべての.NETフレームワークと互換性があり、Windows、Linux、MacOS、Docker、Azure、AWSなどの複数のプラットフォームで使用できます。

Microsoft ExcelをインストールせずにIronXLを使用してExcelファイルを編集できますか?

はい、IronXLを使用すると、C#でプログラム的にExcelファイルを作成および編集でき、Microsoft Excelをシステムにインストールする必要はありません。

IronXLが対応するExcel形式は何ですか?

IronXLはXLS、XLSX、CSV、TSVなど、さまざまなExcelファイル形式をサポートしており、データのインポートや操作が容易です。

C#プロジェクトでIronXLを使用するための前提条件は何ですか?

IronXLを使用するには、Visual Studioがインストールされていることを確認してください。NuGetパッケージマネージャーを介して、または.NET Excel DLLをダウンロードして参照することで、プロジェクトにIronXLを追加できます。

C#でIronXLを使ってExcelワークブックをロードするにはどうすればよいですか?

C#でExcelワークブックをロードするには、IronXLのWorkBook.Load("path/to/file.xlsx")メソッドを使用して、ワークブックを開いて操作できます。

IronXLでExcelの数式を処理できますか?

はい、IronXLはシートが編集されるたびにExcelの数式をシームレスに処理および再計算し、データ計算の精度を保証します。

IronXLを使用して特定のセルからデータを読み取るにはどうすればよいですか?

特定のセルからデータを読み取るには、sheet["B2"].StringValueのようなIronXLの構文を使用してセルB2の値を取得します。

IronXLを使ってExcelシートのセル範囲を反復処理できますか?

はい、foreach (var cell in sheet["A1:C3"])のような構文を使用してIronXLでセル範囲を反復処理できます。

IronXLをASP.NETアプリケーションに統合するにはどうすればよいですか?

IronXLは、NuGet経由でライブラリを追加し、プロジェクトで参照することでASP.NETアプリケーションに簡単に統合できます。

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

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

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