.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. C#でExcelをオートメーション化する手法とは

C#でExcelをオートメーション化する手法とは

  • C#
  • プログラミング言語
公開日時:   更新日時:
C#でExcelをオートメーション化する手法とは
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    C#ではアプリケーションの開発に用いられますが、Excelを制御することもできます。この記事ではExcelのオートメーション化について紹介します。

    システム
    エンジニア
    そもそもオートメーション化って、どういった意味なのでしょうか?
    プロジェクト
    マネージャー
    例えば、Excelのような全く別のアプリケーションを、自分が開発しているプログラムで制御できるようにすることだよ。

    C#でExcelをオートメーション化する方法

    Excelを利用しているユーザーは数多くいます。そして、C#で開発しているプログラムから利用頻度の高いExcelを出力することは、現場で求められるコーディングスキルのひとつです。

    アプリケーションを起動して、新しいブックの作成やセルにデータを設定するなどがExcelのオートメーション化といった作業になります。
    このオートメーション化には、二通りのパターンが存在しています。

    Microsoft.Office.Interop.Excelを利用してのCOM参照する方法(非推奨)

    COM参照では、C#で開発したアプリケーションが起動されている裏で、Excelを実際に立ち上げるためにEXCEL.EXEも同時に起動します。
    そのため、処理が遅くなることが多くあります。

    また、COM参照の場合は自動で不要なメモリを解放する機能「ガベージコレクション」が機能しません。

    開発者自身がSystem.Runtime.InteropServices.Marshal.ReleaseComObject()メソッドを呼び出し、参照したCOMオブジェクトを解放する必要があります。開発者自身に委ねられるということは、それだけ解放漏れも発生する可能性が高いので、ここでは非推奨とさせていただきます。

    オープンソースライブラリである「NPOI」を利用する方法(推奨)

    歴史あるApache POIの.NETバージョンであり、実績があります。また、拡張子.xlsと.xlsxの両方に対応しています。

    C#でNPOIを利用してオートメーション化

    拡張子.xlsファイルはHSSFWorkbookクラスを、xlsxファイルはXSSFWorkbookクラスを利用します。
    このクラスをインスタンス化することで、ブックの作成やセルの編集作業が可能になります。

    まずはNPOIをお使いのVisual Stuidoにインストールしましょう。今回使用するVisual StudioのバージョンはCommunity 2017です。

    1. Visual Studioのプロジェクトを作成した後、赤枠の箇所を右クリックし、「ソリューションのNuGetパッケージの管理」を選択します
    2. NuGet選択

    3. 参照を選択して、NPOIと打ち込みます
    4. NPOI検索

    5. NPOIを選択して、右に出力されますチェックボックスをONにし、インストールボタンをクリックします
    6. NPOIインストール

    7. インストールが完了すれば、参照にNPOIが含まれていることを確認しましょう
    8. NPOI確認

    以下、NPOIを利用したサンプルソースです。実行するとブックを作成します。

    システム
    エンジニア
    Excelのオートメーション化には二通りの方法があるのですね。どちらでも対応できるように今から勉強します。
    プロジェクト
    マネージャー
    そうだね。現場によって使用するオートメーション化も変わってくるから、より多くの方法を覚えておきましょうね。

    現場では最適なExcelのオートメーション化を

    上記でご紹介したオートメーション化の方法以外にもClosedXMLといったオープンソースライブラリを使用してExcelのオートメーション化は可能です。
    しかし、こちらは拡張子xlsには対応していないライブラリになります。
    xlsxのみの対応で良いのであれば、こちらを利用する選択肢も有効です。
    それぞれの現場に最適なExcelオートメーションのコーディングを導入しましょう。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job