[C#]NPOIを使ってExcelの読み書きをする方法

[スポンサードリンク]

NPOIを使ってExcelの読み書きをする方法

NPOIとは

ざっくりとした説明だが、「Apache POI」というWordやExcelのファイルを読み書きするためのJavaライブラリを、「.NET」に移植したものらしい。

私も、「Microsoft Office XX.X Object Library」を使うものだと思っていたが、ネットにはこのライブラリについて批判的な情報が多い。

実際にNPOIに慣れるとこちらのほうが簡単だと思う。

NPOIのインストール

NPOIは「Visual Studio Community(私の環境は2017)」で、プロジェクトごとにインストールする。
次の手順でインストールすると、参照設定も自動で必要な分行われる。

NuGetパッケージマネージャ

メニューから
「ツール」→「NuGetパッケージマネージャ」→「パッケージマネージャーコンソール」を開く。

すると、「パッケージマネージャーコンソール」ウィンドウが開き、下図のように、コマンドプロンプトが表示される。

赤字を入力してEnterキーを押す。
「PM> Install-Package NPOI

これで「正常にインストールされました」とメッセージが表示され。
「PM>」というプロンプトが出たら「パッケージマネージャーコンソールウィンドウ」を閉じる。

Excelから別のExcelへ値をコピーするサンプル

このサンプルは、1シート目の内容を、書き込み先の1シート目のセルに書き込んでいる。
書き込み先のセルにすでに値があれば、その値は読み込み元のセルの値で上書きされる。

注意点

行番号と列番号

「1列目、2列目」「1行目、2行目」と数えるExcelVBAなどと異なり、NPOIでは「0列目、1列目・・・」「0行目、1行目・・・」と数える。

0から数えていくので注意してもらいたい。

Excelの開き方

例えばExcelのブックを開くときに、FileStreamを使わずに、

とすると、いつまでもファイルを掴んでいるため、ブックを保存する、

で、「他のファイルが開いているために書き込みができない」というエラーになる。

このため、FileStreamを使用して、「ブックを読み込んだらすぐにそのファイルを閉じる」という処理に変更した。
また、一回ファイルが読み込めなくなると、冒頭の「WorkbookFactory.Create」でも同様のエラーが出始める。

ブックを読み込んだら、すぐにファイルを閉じる。ブックを書き込んだらすぐにファイルを閉じる。
ファイルを開きっぱなしにしないように気を付ける。

[スポンサードリンク]

関連記事

コメント

    • testsan
    • 2017年 11月 30日

    CellやRowはそれぞれ
    NPOI.SS.Util.CellUtil.GetCell();
    NPOI.SS.Util.CellUtil.GetRow();
    で取得すると、存在しない場合には作成して返してくれますよ。

      • ucchanx
      • 2018年 5月 22日

      コメント有難うございます。
      返信が遅くなり申し訳ありません。

      このような方法があるのですね。
      アドバイスありがとうございます。
      感謝です。
      これからもよろしくお願いいたします。

  1. この記事へのトラックバックはありません。

CAPTCHA


ピックアップ記事

  1. Oracle 12cではCDBとPDBの概念があるため、それより前のバージョンの様にログインすると、…
  2. ビューの定義を検索して、ビューで参照しているテーブルまたはビューを探す (さらに……
  3. EXECUTE 権限がオブジェクト '関数名'、データベース 'データベース名'、スキーマ 'dbo…
  4. 画面のパラメータにより異なる検索条件や、異なるテーブルのデータを取得する際。 「UNION ALL…
  5. いまの時代、一つの企業に就職してそこで定年を迎えるというのはまれです。 しかし、それが一番いいと私…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る