C#でExcelファイルを操作する (Open XML) 準備編

C#から Microsoft Office のエクセルファイルを操作したい事は意外とあると思います。

プログラムからエクセルファイルを操作する方法として、COMインターフェース(Microsoft.Office.Interop.Excel) を使うやり方がありますが、この場合プログラムを実行するPCにOfficeがインストールされていなければなりません。

 

Microsoft Office がインストールされていない環境でも動作できるよう Open XML SDK というライブラリを使ったエクセルファイルの操作方法について解説します。

 

Open XML SDK とは

Microsoft Office では、以前はデータファイルの保存形式に独自のバイナリ形式を用いてきましたが、Office 2007 からは XML で記述された規格を標準ファイル形式として採用しています。

この新たなファイル形式が OpenXML です。

 ※以前の独自バイナリ形式のファイルは拡張子が「.doc」「.xls」「.ppt」

 ※新たな OpenXML形式のファイルは拡張子が「.docx」「.xlsx」「.pptx」

 

 

そして、OpenXML形式のファイルを操作する為のライブラリが Open XML SDK となります。

(Open XML SDKでは 以前の形式となる「.xls」を操作する事はできません)

Microsoftによって作られたライブラリですが、MITライセンスのオープンソースとして公開されています。

Open XML SDK のインストール

Visual Studio を使っているなら NuGet を使って簡単にライブラリのインストールが可能です。

  

メニューから「ツール(T)」→「NuGet パッケージ マネージャー(N)」→「ソリューションのNuGet パッケージ管理(N)...」を選択します。

「参照」をクリックしてから検索欄に「OpenXML」と入力しましょう。

「DocumentFormat.OpenXML」というパッケージを選択すると右側にインストール画面が出てきます。

右画面の中で適用するプロジェクトにチェックを付けてから「インストール」ボタンをクリックします。

インストールが完了するとソリューションエクスプローラの参照に DocumentFormat.OpenXML が追加されます。

ライブラリの名前空間

Open XML SDK を使ってエクセルにアクセスするクラスは以下のような名前空間にあります。

usingで定義しておくと良いでしょう。

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

 

関連記事