皆んな大好き Excel !! Excel REST API Java サンプルアプリケーション

2016年8月31日 at 8:00 AM

2016 年 8 月初旬 Office 365 の Excel REST API が正式にリリースしました。
アナウンス:「Announcing the general availability of the Microsoft Excel API to expand the power of Office 365

上記により、Graph API と呼ばれる REST API を使用して、Office 365 の OneDrive に存在する Excel ファイルを操作できるようになります。
Excel 操作用の Graph API

※ REST API で利用できるため、プログラミング言語を問わず任意の言語で操作ができるようになっていますので、Java 以外のプログラミング言語でもどうぞお試しください。

今回、私は上記の REST API を利用して Java のサンプル・コードを作成しました。
サンプル・コード:「GitHub : Office-365-Excel-REST-API-for-Java」
またサンプル・コードがどのように動作するのかをわかりやすくするため、サンプル・アプリケーションのデモ動画も撮りましたので、どうぞ下記のデモ動画もご覧ください。

今回作成したサンプル・アプリケーションは Java EE 7 のアプリケーションとして作成しました。そこで、Java EE 準拠のアプリケーション・サーバであれば、いずれの環境でも動作します。私は、Payara Server 4.1.1.162 (GlassFish) で動作確認をしていますが、少しの変更を行うだけで、アプリケーション・サーバではなく、Servlet Container(Tomcat/Jetty) でも動かすことができます。

追記:
Office 365 を無料でお試しいただく為の設定手順 (ステップ・バイ・ステップの画面ダンプ) や Tomcat 用の設定方法に関しては 「GitHub : README.md もしくは README-4-Tomcat.md」に記載しています。

アプリケーションの実装の詳細
このサンプル・アプリケーションは Java EE 7 で実装しています。

まず、GUI (フロントエンド) のビュー・テクノロジーとして JavaServer Faces (PirmeFaces) を利用しています。しかし、フロント技術はこのサンプルでは重要でありません。慣れ親しんだフロント・テクノロジーをご利用ください。

実際の、Excel 操作の要は、com.yoshio3.restclient パッケージ配下で実装しています。
特に com.yoshio3.restclient.services サービスが重要で、Excel REST API で用意されている各種機能(REST 呼び出し)をラッピングしたメソッドを実装しています。
また、Excel REST API のリクエスト・ボディ、もしくはレスポンス・ボディに含む JSON のデータは、すべて com.yoshio3.restclient.jaxb.entities パッケージ配下のクラスにマッピングしています。例えば、Excel のワーク・シートやテーブルを取得した際に取得できる情報はすべて com.yoshio3.restclient.jaxb.entities.excel パッケージに含まれています。このマッピングした Java オブジェクトを操作することで、実際の JSON データを意識せずにプログラムができます。

また、Office 365 に接続するためには、Azure Active Directory で認証を行う必要があります。今までは、「Microsoft Azure Active Directory Authentication Library (ADAL) for Java」を利用してきました。しかし、今回 Azure AD で認証を行うために必要最低限の軽量な Servlet Filter (AzureADAuthServletFilter) を独自に実装しました。

Servlet Filter : AzureADAuthServletFilter.java
アクセス・トークン:AccessToken.java
Auth サービス: OAuth2Service.java

まだ一部実装が足りない部分(TODO)はありますが、Azure AD の認証のフローをご理解頂く上で、このサーブレット・フィルタはご参考いただけるのではないかと思います。また、Servlet Filter なので認可はできませんが、Tomcat/Jetty のような Servlet Container でも動作します。認可が必要な方は、以前作成した「Azure AD 認証・認可サンプル」をご参照ください。

Java ユーザの皆様も、Office 365 の OneDrive に存在する Excel ファイルを直接 Java から操作してみませんか?

Have fan Excel with Java !!

広告

Entry filed under: Java, Microsoft Azure. Tags: , , , .

Java EE の戦略アップデート (2016/08/09 : JCP Executive Committee) Microsoft Tech Summit 開催(申し込み締め切りは明日まで)


Java Champion & Evangelist

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2016年8月
« 7月   10月 »
1234567
891011121314
15161718192021
22232425262728
293031  

カテゴリー

Twitter

clustermap

ブログ統計情報

  • 977,418 hits

Feeds


%d人のブロガーが「いいね」をつけました。