ここでは、NPOI をダウンロードしてプロジェクトに参照設定を追加し、簡単な動作確認を行うまでの説明をしています。
NPOI とは Java でエクセルファイルの読み書きを行う Apche POI の .Net Framework 版になります。
スポンサーリンク
NPOI のダウンロード
NPOI のダウンロードは下記のリンク先より行います。ここでは、安定版の最新である、NPOI 2.1.3.1 を使用しています。
ダウンロードした圧縮ファイルを解凍すると、readme ファイルなどとともに、dotnet2 と dotnet4 の名前でフォルダが存在して、それぞれ下記のように DLL ファイルがあります。
dotnet2 と dotnet4 フォルダ内の DLL の違いは、NPOI をビルドした .Net Framework のバージョンの違いのようです。ここでは dotnet4 フォルダ内の DLL を使用することにします。
プロジェクトの参照に追加
すべての DLL ファイルを参照設定でプロジェクトに追加します。
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); }