[ NPOI C# ] 参照の追加と動作確認(シート名の一覧を取得)

Pocket

ここでは、NPOI をダウンロードしてプロジェクトに参照設定を追加し、簡単な動作確認を行うまでの説明をしています。

NPOI とは Java でエクセルファイルの読み書きを行う Apche POI の .Net Framework 版になります。

スポンサーリンク

NPOI のダウンロード

NPOI のダウンロードは下記のリンク先より行います。ここでは、安定版の最新である、NPOI 2.1.3.1 を使用しています。

NPOI のダウンロードページのスクリーンショット

NPOI のダウンロードページのスクリーンショット

ダウンロードした圧縮ファイルを解凍すると、readme ファイルなどとともに、dotnet2 と dotnet4 の名前でフォルダが存在して、それぞれ下記のように DLL ファイルがあります。

NPOI をダウンロードした中身

NPOI をダウンロードした中身

dotnet2 と dotnet4 フォルダ内の DLL の違いは、NPOI をビルドした .Net Framework のバージョンの違いのようです。ここでは dotnet4 フォルダ内の DLL を使用することにします。

プロジェクトの参照に追加

すべての DLL ファイルを参照設定でプロジェクトに追加します。

NPOI を参照に追加

NPOI を参照に追加

NPOI 動作確認(シート名の一覧を取得)

では、実際に動作確認を行ってみます。次のサンプルコードではファイルパスを指定してそのエクセルファイル内のシート名の一覧を取得しています。

詳細はサンプル内のコメントも参照ください。

C#

//using NPOI.SS.UserModel;

// xlsx でも xls の旧フォーマットでもOK
string filePath = @"/path/to/excel.xlsx";

IWorkbook wb; // ワークブックオブジェクト

// エクセルファイルの内容を取得したら即クローズ
// FileShare.ReadWrite を設定していないと、他プロセスでファイルがオープン
// されている場合、例外が発生してしまう。
using(FileStream excelfile = new FileStream(filePath,
                                            FileMode.Open,
                                            FileAccess.Read,
                                            FileShare.ReadWrite))
{
    // ワークブックオブジェクトの生成
    // 第2パラメータで、テキストのみを情報を取得している
    // style などの情報は取得されない
    // すべての情報を取得する場合は、ImportOption.All を指定する
    wb = WorkbookFactory.Create(excelfile, ImportOption.TextOnly);
}

// シート数を取得
int sheetCount = wb.NumberOfSheets;

// シート名を保存するリスト
List<string> sheetNameList = new List<string>();

// シート数分ループ
for (int i = 0; i < sheetCount; i++)
{
    // シートオブジェクトを取得
    ISheet sht = wb.GetSheetAt(i);
    // シート名を取得して、リストに保存
    sheetNameList.Add(sht.SheetName);
}

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>