Microsoft Graph を使って Excel のサーバーサイド オートメーションを実現する
はじめに
みなさんがよく利用する Excel ですが、Excel のサーバーサイド オートメーションは、昔からさまざまな手法によって実現されてきました。サポートされない方法 や、サードパーティ製品に頼る必要がありましたが、現在では Microsoft Graph を使うことで、サーバーサイドで Excel を作成できるようになりました。
やりたいことをまとめると、以下のようになります。
- Excel のテンプレートを SharePoint サイトの任意の場所に置く
- Excel のテンプレートをコピーする
- コピーしたファイルに値を書き込む
- 書き込んだファイルをダウンロードする (Azure Blob Storage などに保存する)
実行手順
具体的に API を見ながら実装方法を確認します。
Excel のテンプレートを SharePoint サイトの任意の場所に置く
この作業は自動化する必要がないため、手動で実施してください。もしテンプレートの自動更新などを行いたい場合は、ファイルのアップロードが可能です。
Excel のテンプレートをコピーする
ファイルのコピーには copy メソッドを使用します。コピーは driveId を指定できるため、SharePoint サイト間や SharePoint から OneDrive for Business へのコピーも可能です。
コピーしたファイルに値を書き込む
セルに値を書き込むには range に対して PATCH リクエストを要求します。値の設定だけでなく、数式や書式の設定も可能です。値は 2 次元配列で指定します。
また、大量の値を書き込む場合は、パフォーマンス向上のためにセッションを利用することをおすすめします。
書き込んだファイルをダウンロードする
作成したファイルは content プロパティでダウンロードできます。GET 要求を送信すると、ダウンロード用の一時的な URL にリダイレクトされ、そこからファイルをダウンロードできます。
おわりに
今回はファイル操作と Excel 操作について紹介しました。たとえば申請書の宛先に上司の名前を自動的に設定するために manager を使ったり、作成したファイルをダウンロードせずに URL をメールで送信したり、さまざまなバリエーションが考えられます。ぜひ Microsoft Graph を活用して自由なプログラミングを体験してください。
Discussion