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

C#でIronXLを使用してExcelファイルを開く方法

C#でExcelファイルを開いて処理することは、ほぼすべての.NET開発者が直面する問題です。 毎週のレポートを自動化する場合でも、データインポートを読み込む場合でも、即時にスプレッドシートを生成するツールを構築する場合でも、Excelファイルの処理方法は速度、信頼性、展開の柔軟性に大きな違いをもたらします。

このチュートリアルでは、Microsoft Officeがインストールされていなくても、ブックを読み込み、編集し、書き込む軽量なExcelライブラリであるIronXLを使用してC#でExcelファイルを開く方法を見ていきます。 C#アプリケーションの中で簡単にデータをロードし、ワークシートにアクセスし、プログラムでセルを操作できる様子を確認できます。

Microsoft.Office.Interop.ExcelよりIronXLを選ぶ理由

Microsoft.Office.Interop.Excelは伝統的なExcel自動化のアプローチですが、現代のアプリケーションにはIronXLがより優れた選択肢であることを示す大きな制約があります。 Microsoft自体がサーバー上でのOffice Interopの使用を推奨していません:

特徴

IronXL

Microsoft.Office.Interop.Excel

Excelインストール必須

✅ いいえ

❌ はい

クロスプラットフォームサポート

✅ Windows, Linux, macOS

❌ Windowsのみ

サーバー展開

✅ 完全にサポートされている

❌ Microsoftからの推奨がない

メモリ管理

✅ 自動

❌ 手動COMクリーンアップが必要

APIの複雑さ

✅ 簡単で直感的

❌ 複雑なCOMインターフェース

ファイル形式サポート

✅ XLS, XLSX, CSV, TSV, JSON

⚠️ Excel形式に限定される

IronXL eliminates the dependency on Microsoft Excel, making it ideal for server environments, Docker containers, and cloud platforms like Azure. ライブラリは、COMオブジェクトや手動メモリ管理を必要とせずに、クリーンでモダンなAPIを提供します。

IronXL for .NETをインストールする方法

IronXLを始めるのは簡単です。 プロジェクトに数分で追加できます。 NuGetパッケージマネージャーを通じてインストールするだけです。

Install-Package IronXL.Excel

今IronXLを始めましょう。
green arrow pointer

ExcelファイルをC#で開く方法

IronXLを使用して既存のExcelファイルを開くには、コードがほんの数行必要です。 ライブラリは、以下のコードスニペットに示すように、XLSやXLSXを含むさまざまなExcel形式を読み取ることをサポートしています。

// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");
// Access the first worksheet
WorkSheet sheet = workbook.WorkSheets[0];
// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");
// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");
// Access the first worksheet
WorkSheet sheet = workbook.WorkSheets[0];
// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");
// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上記のコードは、Excelファイルを完全なExcelファイルを表すWorkBookオブジェクトにロードすることを示しています。WorkBook.Load()メソッドはファイル形式(XLS, XLSX, CSV, TSV)を自動的に検出し、適切に処理します。

GetWorkSheet()メソッドを使用して、インデックスまたは名前でワークシートにアクセスできます。 個別のセル値は直感的なブラケット表記を通じてアクセス可能で、コードの可読性が非常に高くなります。 For more complex scenarios, explore working with Excel ranges and cell data formats.

出力

IronXLを使用してC#でExcelファイルアプリケーションを開く方法: 図1 - サンプルのExcelファイルを開いて読み取る

新しいExcelワークブックを作成する方法

IronXLのスプレッドシート作成機能を使用すると、新しいExcelファイルの作成も同様に簡単です:

// Create a new workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add metadata
workbook.Metadata.Author = "Sales Department";
// Create a worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");
// Add data to cells
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Revenue";
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 45000;
// Apply formatting
sheet["B2"].FormatString = "$#,##0.00";
// Save the workbook
workbook.SaveAs("quarterly-report.xlsx");
// Create a new workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add metadata
workbook.Metadata.Author = "Sales Department";
// Create a worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");
// Add data to cells
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Revenue";
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 45000;
// Apply formatting
sheet["B2"].FormatString = "$#,##0.00";
// Save the workbook
workbook.SaveAs("quarterly-report.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコード例では、WorkBook.Create()メソッドが指定された形式で新しいワークブックを初期化します。 CreateWorkSheet()を使用して複数のワークシートを追加し、さまざまなデータ型でExcelの行と列の特定のセルを埋め、書式スタイルを適用します。 ライブラリはデータ型の変換とExcel固有の形式の要件を自動的に処理します。 C#でのExcel数式について詳しく知りたい場合は、高度な計算方法を学びます。

出力

IronXLを使用してC#でExcelファイルアプリケーションを開く方法: 図2 - 新しいExcelワークブックの作成

Excelワークシートデータを読み取り、処理する方法

IronXLはデータの抽出と処理に優れています:

// Load workbook
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a range of cells
var range = sheet["A1:D5"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
// Convert to DataTable for easier processing
System.Data.DataTable dataTable = sheet.ToDataTable(true);
// Process data using LINQ
decimal total = sheet["C2:C5"].Sum();
Console.WriteLine($"Total: {total}");
// Load workbook
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a range of cells
var range = sheet["A1:D5"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
// Convert to DataTable for easier processing
System.Data.DataTable dataTable = sheet.ToDataTable(true);
// Process data using LINQ
decimal total = sheet["C2:C5"].Sum();
Console.WriteLine($"Total: {total}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ここでは、プロジェクト内でExcelファイルを開くために同じプロセスを使用します。 範囲選択構文(sheet["A1:D5"])は複数のセルを操作するための優れた方法を提供します。 ToDataTable()メソッドは、ワークシートデータをDataTableに変換し、データベースとの統合やデータバインディングシナリオを可能にします。 IronXLはまた、範囲で直接Sum()、Average()、およびMax()のような集計関数をサポートしています。 より大きなデータセットを処理する場合は、完全なAPIドキュメントをご覧ください。

IronXLを使用してC#でExcelファイルアプリケーションを開く方法: 図3 - 処理されたExcelデータの出力

Microsoft Officeなしでの作業

IronXLの最大の強みの1つは、Microsoft Officeに依存せずに動作できることです。この機能により、多くの展開シナリオが可能になります:

  • クラウド展開: ライセンスの懸念なしにAzure、AWS、Google Cloudで実行
  • Dockerコンテナ: 複雑なOfficeインストールなしにコンテナ化されたアプリケーションに含める
  • Linuxサーバー: コスト効果の高いLinux環境にデプロイ
  • CI/CDパイプライン: 自動ビルドプロセスでExcelレポートを生成

ライブラリはすべてのExcelファイル生成および操作を内部で処理し、一貫した結果を確保するために独自のレンダリングエンジンを使用してすべてのプラットフォームで操作します。

結論

IronXLは、C#でのExcelファイルのオープンおよび操作のためのモダンで効率的なソリューションを提供します。 Excel依存を排除し、クリーンなAPIを提供することにより、開発を簡素化し、より広範な展開オプションを可能にします。 デスクトップアプリケーション、Webサービス、またはクラウドベースのソリューションを構築しているかどうかに関係なく、IronXLはすべての環境でExcel自動化が確実に動作するようにします。

Excel自動化を近代化する準備ができていますか? 無料トライアルとしてIronXLをダウンロード $liteLicenseから開始

よくある質問

Microsoft Officeを使用せずにC#でExcelファイルを開くにはどうすればよいですか?

IronXLを使用すると、Microsoft Officeを必要とせずにC#でExcelファイルを開くことができます。IronXLはInteropの現代的な代替手段を提供し、より良いパフォーマンスとExcelの依存をなくします。

C#でExcelファイルを処理するためにIronXLを使用する利点は何ですか?

IronXLは、パフォーマンスの向上、Excelインストールへの依存なし、および展開の柔軟性の向上など、いくつかの利点を提供します。レポートの自動化、データのインポートの読み取り、およびスプレッドシートを効率的に生成することができます。

IronXLは自動化タスクのためにExcelファイルを扱うことができますか?

はい、IronXLは毎週のレポート生成、データインポートの読み取り、動的なスプレッドシート生成のためのツールの作成などの自動化タスクに最適です。

IronXLはC#アプリケーションにおけるInteropの適切な代替品ですか?

IronXLは、Excel依存を排除し、Excelファイル作業時のアプリケーションパフォーマンスを向上させるモダンなソリューションを提供するため、Interopの適切な代替品です。

IronXLはExcelファイルの読み取りと書き込みをサポートしていますか?

IronXLは、Excelファイルの読み取りと書き込みの両方を完全にサポートしており、スプレッドシートデータを扱う.NET開発者にとって汎用性の高いツールです。

Curtis Chau
テクニカルライター

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

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