IRONSOFTWAREHOME
他のコンポーネントと比較する

IronXLとNPOIの比較

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

IronXLとNPOIはどちらも.NET Excelライブラリであり、Office.Interopを使用せずに動作します。つまり、Microsoft Excelのインストールは不要です。 この比較では、Excelファイルの読み書きおよび操作に関する各APIについて解説し、開発者が最も頻繁に遭遇する操作のコード例を示します。

NPOIとは何ですか?

NPOIは、http://poi.apache.org/のPOI Javaプロジェクト for .NETバージョンです。 POIは、xls、doc、pptファイルを読み書きするのを助けることができるオープンソースプロジェクトです。 それは広範なアプリケーションを持っています。

例えば、以下のようなことに使用できます:

サーバーにMicrosoft OfficeスイートをインストールしなくてもExcelレポートを生成し、バックグラウンドでMicrosoft Excel ActiveXを呼び出すよりも効率的に行います。

  • Officeドキュメントからテキストを抽出し、全文インデックス機能を実装するのを助ける(ほとんどの場合、この機能は検索エンジンを作成するために使用される)
  • Officeドキュメントから画像を抽出します *数式を含むExcelシートを生成する

NPOIとExcel

NPOIは、ApacheによるPOI JavaプロジェクトのC#ポートです。 それは無料でオープンソースです。 また、Interopを必要としないため、開発者のアプリが機能するためにExcelをインストールする必要がありません。

IronXLとExcel

IronXLは、VBとC#用のExcel APIです。 IronXLを使用すると、.NETでExcelスプレッドシートファイルを読み取り、編集し、作成できます。

NPOIとIronXLの比較は?

NPOIIronXL
セル範囲セル範囲
セルのスタイル設定(境界線、色、塗りつぶし、フォント、数値、配置)セルの視覚スタイル:フォント、サイズ、背景パターン、枠線、配置、数値形式。
数式計算数式
データバリデーションデータバリデーション
条件付き書式設定条件付き書式設定
画像画像
チャートチャート

表1 - 機能比較

NPOIの代替としてIronXLを評価するチームは、30日間無料トライアルでAPIをフルに試すことができます。


IronXLとNPOIのインストール

両方のライブラリは手動またはNuGetでインストールできます。 以下に簡単な概要を示します。 詳細な手順については、IronXLのスタートガイドをご覧ください。

NPOIのインストール

NuGetを使用してNPOIをインストールする

NuGetを通じてNPOIをインストールするには、Visual Studio開発者コマンドプロンプトを開いて以下を入力します:

PM > Install-Package NPOI -Version x.x.x

Graphical user interfaceDescription automatically generated

図1 - NuGet NPOIのインストール

Visual Studio NuGetパッケージマネージャとNPOI

Visual StudioのNuGetパッケージマネージャを介してIronXLまたはNPOIをインストールするために次の手順を使用します:

  • ソリューションエクスプローラでプロジェクトを右クリックします
  • NuGetパッケージの管理を選択します
  • パッケージを検索します
  • インストールをクリックします
A screenshot of a computerDescription automatically generated

図2 - NPOIのNuGetパッケージマネージャー

IronXLのインストール

IronXLのダウンロード

IronXLをダウンロードするには、次のURLにアクセスし、"ダウンロード"ボタンをクリックします。

Download IronXL

図3 - IronXLをダウンロード

NuGetを使用してIronXLをインストールする

NuGetを介してIronXLをインストールするには、Visual Studioの開発者コマンドプロンプトを開いて以下を入力します:

PM > Install-Package IronXL.Excel -Version x.x.x

NuGet IronXL Installation

図4 - NuGet IronXLのインストール

Visual Studio NuGetパッケージマネージャとIronXL

Visual StudioのNuGetパッケージマネージャを介してIronXLをインストールするために次の手順を使用します:

  • ソリューションエクスプローラでプロジェクトを右クリックします
  • NuGetパッケージの管理を選択します
  • パッケージを検索します
  • インストールをクリックします
A screenshot of a computerDescription automatically generated

図5 - IronXLのNuGetパッケージマネージャー

NPOIとIronXLを使用してExcelファイルを読み書きする

NPOIを使用してExcelファイルを読む

以下のコードは、NPOIを使用してExcelファイルを読み取り、その内容を表示する方法を示しています。 以下のコードを追加し、必要な名前空間を含めます:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.Data;
using System.IO;
using System.Collections.Generic;

以下のコードは、既存のExcelファイルを読み込みデータグリッドビューに表示します。

public void ReadExcelNPOI()
{
    DataTable dtTable = new DataTable();
    List<string> lstRows = new List<string>();
    ISheet objWorksheet;
    string strPath = @"c:\temp\NPOI_Test.XLSX";

    // Use FileStream to open the Excel file
    using (var fStream = new FileStream(strPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    {
        fStream.Position = 0;
        XSSFWorkbook objWorkbook = new XSSFWorkbook(fStream);
        objWorksheet = objWorkbook.GetSheetAt(0);
        IRow objHeader = objWorksheet.GetRow(0);
        int countCells = objHeader.LastCellNum;

        // Add columns to the DataTable based on the header row of Excel
        for (int j = 0; j < countCells; j++)
        {
            ICell objCell = objHeader.GetCell(j);
            if (objCell == null || string.IsNullOrWhiteSpace(objCell.ToString())) continue;
            {
                dtTable.Columns.Add(objCell.ToString());
            }
        }

        // Add rows to the DataTable, looping through each row and cell
        for (int i = (objWorksheet.FirstRowNum + 1); i <= objWorksheet.LastRowNum; i++)
        {
            IRow objRow = objWorksheet.GetRow(i);
            if (objRow == null || objRow.Cells.All(d => d.CellType == CellType.Blank)) continue;

            for (int j = objRow.FirstCellNum; j < countCells; j++)
            {
                ICell cell = objRow.GetCell(j);
                if (cell != null && !string.IsNullOrEmpty(cell.ToString()) && !string.IsNullOrWhiteSpace(cell.ToString()))
                {
                    lstRows.Add(cell.ToString());
                }
            }

            if (lstRows.Count > 0)
                dtTable.Rows.Add(lstRows.ToArray());

            lstRows.Clear();
        }
    }

    // Assuming dataGridView1 is a DataGridView control on a Form
    dataGridView1.DataSource = dtTable;
}

private void button1_Click(object sender, EventArgs e)
{
    ReadExcelNPOI();
}

IronXLを使用してExcelファイルを読む

以下のコードは、IronXLを使用してExcelファイルを読み取り、データグリッドビューに表示する方法を示しています。 IronXLのコード例をもっと知りたい場合は、ドキュメントを参照してください。 以下のコードを追加し、名前空間を含めます:

using IronXL;
using System.Data;

IronXLの導入に注意してください。 これはIronXLを機能させるために必要です。 ここでは、既存のExcel Workbookオブジェクトが読み込まれ、その後、JSONとXML形式にエクスポートされます。

private void button2_Click(object sender, EventArgs e)
{
    // Load the Excel workbook
    string strPath = @"c:\temp\NPOI_Test.XLSX";
    WorkBook workbook = WorkBook.Load(strPath);

    // Access the default worksheet
    WorkSheet sheet = workbook.DefaultWorkSheet;

    // Convert the worksheet to a DataTable
    var dtTable = sheet.ToDataTable(true);

    // Assuming dataGridView1 is a DataGridView control on a Form
    dataGridView1.DataSource = dtTable;
}

ご覧のとおり、 IronXLは読み込みと表示の処理をNPOIの40行以上に比べて約5行のコードに削減し、手動での行の反復処理とセルごとの抽出ループを完全に排除しています。 IronXLの全機能ガイドをご覧いただくと、一般的なExcel作業をより効率的に行うための方法が見つかります。

どちらのライブラリを選ぶべきか?

NPOIは、 .NETにおけるExcel操作のための、堅牢で実績のあるオープンソース基盤を提供します。Apache POIの移植版として開発されたため、長年にわたるコミュニティの貢献と幅広いフォーマットへの対応という恩恵を受けています。 主な要件が無料のコミュニティ主導型パッケージでスプレッドシートの読み書きを行うことであるチームにとって、NPOIは信頼できる選択肢です。

チームがしばしば摩擦に直面するのは、NPOIが一般的な操作のために必要とする定型コードの量である。 上記のファイル読み込みの例が示すように、IronXLのアプローチでは、同じ操作(ワークブックを読み込んでデータグリッドに表示する)に必要なコードが約5行であるのに対し、NPOIでは40行以上必要となり、手動での行とセルの反復処理ループが完全に不要になります。 コードの表面積が減少することは、メンテナンスの容易化やバグが潜む場所の減少という形で報われる投資である。

IronXLには、Professionalサポート、定期的なアップデートスケジュール、そしてIron Softwareのエンジニアに直接機能のリクエストができる機能も含まれています。 コミュニティ主導型プロジェクトは、この点において異なるトレードオフを提供する。すなわち、より幅広い貢献者からの意見を取り入れることができる一方で、特定の問題に対する対応時間が予測しにくくなる。

ライセンス費用以外に、プロジェクトの総費用には、NPOIの低レベルAPIに必要な追加の定型コードの作成と保守に費やされた開発者の時間、および上記の例に示した手動データマッピングロジックのデバッグに費やされた時間が含まれます。 複数年にわたるプロジェクトライフサイクル全体でコストを評価するチームにとって、これらの開発および保守コストは、オープンソースライセンスと商用ライセンスの差額をしばしば上回る。

ダウンロード

このプロジェクトはGitHubで入手可能です:

IronXLとNPOIの例

ご自身のプロジェクトでその違いを実感してみませんか? 30日間のIronXL無料トライアルを開始して、これらの例をローカルで実行してください。

ご注意: NPOIはその所有者の登録商標です。 このサイトは、NPOIと提携、承認、またはスポンサーされていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。