環境 :
OneDrive (旧 Windows Live SkyDrive)
Excel 2010
Excel のクラウドな開発
- Office 365 (SharePoint Online) 編
- OneDrive 編
こんにちは。
OneDrive (旧 SkyDrive, 無償) においても、前回 説明した Excel Online (旧 Excel Web App) が使用可能です。
補足 : ただし、OneDrive の Office Online (旧 Office Web App) は、Office 365 (SharePoint) とすべて同一の機能ではなく、表示を中心としたモードになっています。
Windows Live SkyDrive の Excel Online では、前回説明した Office 365 (SharePoint 2010) の場合と比べ活用方法はかなり限定されます。しかし、Office 365 と異なり、匿名ユーザーを対象に、ブログなどのさまざまな要素で活用できるので、よりクラウドらしい連携・活用が可能です。
では、いくつか例を紹介しましょう。
まず、OneDrive を使用すると、アップロードした Excel、PowerPoint のファイルを対象に、iframe を使った Office Online の UI 部品としての貼り付け (Embed) が可能です。
補足 : ここでは Excel を例に説明しますが、PowerPoint のスライド ショーも、ブログなどに張り付けて使用できます。(例えば、こちら の投稿では PowerPoint を貼り付けています。)
前回 作成した Excel ワークブック (ただし、発行オプションの設定前) と同じようにテーブルやグラフを作成し、まずは、OneDrive にそのままアップロードします。
OneDrive 上でアップロードしたブックを右クリックして [埋め込み] を選択すると、下図のように埋め込み用の HTML (iframe) のコードが取得できます。
以下のような URL です。
<iframe src="https://onedrive.live.com/embed?cid=9C0AF81B735E29EA&resid=9C0AF81B735E29EA!11502&authkey=AOEFg6lwFXrEVnk&em=2" width="402" height="346" frameborder="0" scrolling="no"></iframe>
このタグをブログなどに (HTML として) 張り付けると、下記の通り、Excel Online が iframe としてこのブログに張り付けられているのがわかります。(下記は、実際に貼り付けた本物です。)
補足 : なお、この Excel ファイルに匿名ユーザー (anonymous) でアクセスできるように、あらかじめ、OneDrive で権限設定をおこなっておきましょう。
補足 : 上記 (embedded HTML) の URL を https (SSL) に変更しても接続できるので、Office 365 のページ上になど張り付けることもできます。(前回使用した「コンテンツ エディター Web パーツ」や、サンドボックス ソリューションで開発した Web パーツなどを使って、OneDrive 上の Excel Online を Office 365 の SharePoint Online 上に表示できます。)
これだけでは、ちょっとおもしろくありませんね。
上記では表示だけしかできませんが、シート内に値を入力させて、対話的に計算させることができます。
貼り付けの URL に、下記太字の通り AllowInteractivity、AllowTyping を設定するだけです。この設定により、対話モードとなり、表や「時給」の箇所をダブルクリックして値を変更すると、グラフやテーブルが更新されます。(下記で試してみてください。もちろん、オリジナルの Excel ワークブックは変更されません。)
<iframe src="https://onedrive.live.com/embed?cid=9C0AF81B735E29EA&resid=9C0AF81B735E29EA!11502&authkey=AOEFg6lwFXrEVnk&em=2&AllowInteractivity=True&AllowTyping=True" width="402" height="346" frameborder="0" scrolling="no"></iframe>
さらに、ワークブック全体ではなく、表示するアイテムを限定することもできます。
Excel で [ファイル] メニューをクリックして、[ブラウザーの表示オプション] を選択すると、下図のようにブック全体ではなく、ブック内のアイテムごとの表示設定が可能です。まず、この設定をおこなって、ブックを OneDrive にアップロードしてください。
つぎに、例えば、このブック上のグラフの名前を「graph1」とすると、下記太字の通り Item パラメーターを使って、グラフのアイテムだけを表示できます。(「グラフ 1」のように日本語の名前の場合は、UTF-8 の文字列を URL エンコードしてください。)
<iframe src=https://onedrive.live.com/embed?cid=9C0AF81B735E29EA&resid=9C0AF81B735E29EA!11502&authkey=AOEFg6lwFXrEVnk&em=2&item=graph1 width="402" height="346" frameborder="0" scrolling="no"></iframe>
さらに、ブックの「時給」欄に、下記の通り「exrate」という名前を付けます。
さらに、ブックの [表示オプション] でグラフのみを表示するようにし、下図のようなパラメーターとして、この exrate を選択します。
この設定でブックを OneDrive にアップロードし、埋め込みタグで Web ページ上に挿入すると、下記の通りパラメーターの入力結果によってグラフの表示を変えることができます。(下記で、実際にパラメーターを入力してみてください。)
データの更新
2011/12/19 追記 :
OneDrive の新しい REST API について、こちら に掲載しました。
Windows Live SkyDrive では WebDAV を使ってデータにアクセスできるため、プログラミングによって、Excel のオリジナル データの登録なども可能です。
ただし、認証 (Authentication) に注意してください。Live ID では、OAuth 2 を処理するように実装します。
補足 : ブラウザーを使用した passive 認証だけでなく、login.live.com を使用した authentication token の取得と、SkyDrive の SOAP Web Services (http://docs.live.net/SkyDocsService.svc) を使用した基本情報の取得 (フォルダーの一覧の取得、フォルダー ID の取得、など) を組み合わせて、プログラム コードによる active 認証をおこなって、 SkyDriveに対して さまざまな処理をおこなうこともできます。(この場合も、認証後のデータの処理では、 WebDAV を使用します。)
ここでは詳細を述べませんが、既にインターネット上には、.NET 用の API や、Windows Phone 7 などから接続するサンプル コードなどが存在しますので、是非 参考にしてみてください。(下記は、CodePlex の SkyDrive .Net API Client を使用した C# のサンプル コードです。)
. . .using HgCo.WindowsLive.SkyDrive;. . .SkyDriveServiceClient cl = new SkyDriveServiceClient();cl.LogOn(textBox1.Text, textBox2.Text);cl.Timeout = 120000;var rootFolders = cl.ListRootWebFolders();foreach (var folderInfo in rootFolders){ if(String.Compare(folderInfo.Name, "OWA_Demo", true) == 0) { cl.UploadWebFile(@"c:\Demo\test1.xlsx", folderInfo); break; }}MessageBox.Show("Upload completed !");
[CodePlex] SkyDrive .Net API Client
http://skydriveapiclient.codeplex.com/
[MSDN Samples] SkyDrive Photo API sample for WP7
http://code.msdn.microsoft.com/SkyDrive-Photo-API-sample-f06778ae
このように、Office 365 に比べて劣るものの、SkyDrive でも、上記のようにいくつかの方法で開発と再利用が可能ですので (しかも、SkyDrive は無償です)、是非、さまざまな形で活用してみてください。
補足 : 現在 (2011/07/14) の SkyDrive では、残念ながら、前回説明した SharePoint (Office 365) のような、REST、JavaScript などの API は提供されていません。
Categories: Uncategorized
1 reply»