Google SpreadsheetとEXCELを連携させる意外な方法

Google Spreadsheetはとても便利なクラウドオフィス環境ですが、最大の弱点があります。

それは「印刷に弱い」ということです。

印刷をしなくていい業務であればよいのですが、業務アプリの開発は「最後は紙」であることも多いのです。

私がこれまでGoogle Apps Scriptで開発してきた業務アプリにおいて,そこそこ凝った帳票はGoogle Docsワードプロセッサの文字置き換え→PDF出力→メール添付→あらかじめ印刷しておいた帳票に手差し印刷、という方法をとって来ましたが、フォントは化けますし、どうしてもEXCELで普及している罫線たっぷりのフォームを全面置き換えするところまでたどり着きませんでした。

今回はあきらめて,Google Docsで管理してきたデータを最終工程でEXCELにデータを取り込まなければならない環境,という前提で話を進めます。

もちろんGoogle Spreadsheet側のデータの更新の必要がなければ、ダウンロードして使えばいいことです。しかしレポート出力後もデータの更新がある場合、何度もEXCEL形式でダウンロードして,リンクを貼り直して…というやり方では何かかっこ悪いし、事故が起きそうです。

ここでは、完全にエンドユーザにも任せられて、プログラミングは全く使用せず、それでいてセキュリティ的にも感じのよい方法を紹介します。

『えっそんな方法あるの?しかも無料で…?』という感覚をお持ちになるかもしれませんが、私もそうでした。

Google DocsのデータとOfficeを連携させるOffiSync社はJiveに買収されてしまいましたし,大塚商会のデータースパイダーはODBC経由でよくできていそうですが,有料です.

http://www.offisync.com/index.html

http://www.otsuka-shokai.co.jp/products/dwh/bi-tool/dataspider/adapter/

MySQLやZendPHP経由でいいのであれば、他にもやり方はあるのですが、そこまでコストを払いたくない!という人向けの方法です。

以下の手順を見ればわかりますが、EXCELやGoogle Docsのユーザであれば「使ったことがある機能の組み合わせ」で実現できてしまいます。

【Google Docs側でのエクスポート設定】

まず、GoogleDocs上のファイルから「ウェブに公開…」を選択します。そこで以下のようにエクスポートしたいテーブルを設定します。

WebPub

この公開用URLは元来、Google DocsのデータをHTMLとして表示したり、IFRAMEを使ってWebページに組み込んだりするのに使われていました。HTML形式以外ですとCSV,TSVとPDFが選択できますが、今回は動的更新のためにあえてHTML形式を使います。

【EXCEL側でのインポート設定】

さて、次はEXCELです。

リボンメニューの「データ」から「Webクエリ」を選んでください。

WebQuery

……もうおわかりですね!ここに先ほどのエクスポートURLを設定して、データが取れればラッキーです。やってみましょう。

WebQuery2

よく見ると、オプションと取り込むテーブルをここで設定できます。

黄色い→で明示的に指定し、オプションでは様々なチェックボックスがあります。いろいろ試してみたところ、テキストフィールドの改行壊れを防ぐためにもHTMLであることを明示するのが良いようです。

さらに次のステップで「新しいシート」を取り込み先で選ぶことができますが、その前に「プロパティ」を選択してください。

WebQuery3

名前,更新頻度,新しいデータに対する扱いなどを設定できます。これはすばらしい。

さて、取り込み完了です。あとはEXCEL上で好きに料理すれば良いと思います。フォーム上からVLOOKUPを使って必要なデータを取れば印刷専用のEXCELを作ることも容易いでしょう。

WebQuery4

このデータ領域は「全て更新」を選ぶことでいつでも更新できます。もちろんEXCEL→Docsへの更新はできませんが、元々フォーム印刷目的ですのでセキュリティ的にもこれでいい用途もあるのでは?

★VLOOKUPについて知りたい方はリクエストしてくださいね!
(書いてたら消えた)

これでGoogleDocsをコアにして、確定申告やら請求書やらの帳票関係もクラウド化して、年賀状印刷などの紙が絶対必要な顧客管理アプリも統合させる見通しができました。

クラウドに乗せられないEXCEL守秘データとの整合もとれるし、謎の外部サービスにGoogleのパスワードをいれさせたりしないし、HTTPSで接続しているし(URLで鍵が丸見えなのでOfficeの接続を検証しないとセキュアとはいいがたいですが)可能性のある方法です。

GoogleDocsがXMLエクスポートをサポートするともっと使いでがありそう!

Google SpreadsheetとEXCELを連携させる意外な方法」への2件のフィードバック

  1. 公開したスプレッドシートはセキュリティの観点で問題が生じる事はありえますか?
    例えば、社外秘のデータなどはこの方法での連携が可能でしょうか。

  2. エクセルに取り込みはできましたが空欄に不要な文字制御コード(たぶんBOMコード ”ef bb bf” かと思うのですが)これを削除できません
    そのまま印刷する際は問題ないのですが計算式や条件付き書式等で空欄と認識されないため問題が起こります。

コメントは受け付けていません。