tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルgoogle DOCとoffice365のフィールド
記事No11544
投稿日: 2015/12/11(Fri) 20:32
投稿者でふぁいあんと
いつもお世話になっています
またまたweb回りの質問になります。

取引先の2社が、それぞれ表計算ソフトとして
Google Docsとoffce365-excelを使っています。

たとえば docsのあるセルに10とあり
excelのセルに20 となっていて
合計をとりexcelまたはdocsに30と入力したいのです。

早い話、ローカルのexcelだとworkbookオブジェクトから
参照していけばいいのですが
クラウドだとどうすればよいのか
まったく資料がないのでこまっています。
docsはMicrosoftと関係ないので、おそらく方法が無いのかも
しれませんが、excelはなんとなくありそうな気がします。

それともWEBBroser + DOMでちまちま追いかけるしか方法はないのでしょうか

[ツリー表示へ]
タイトルRe: google DOCとoffice365のフィールド
記事No11545
投稿日: 2015/12/11(Fri) 22:19
投稿者YuO
> クラウドだとどうすればよいのか
> まったく資料がないのでこまっています。

とりあえず,両方を.xlsxにエクスポートしてしまえばローカルで処理できます。
例えば,
・OneDrive API
hhttps://dev.onedrive.com/
・Google Drive API
hhttps://developers.google.com/drive/
という物がありますから,両方を使ってファイルを取得し (Google Docsでは変換も入りますが),
・System.IO.Packaging
hhttps://msdn.microsoft.com/ja-jp/library/system.io.packaging.aspx
や,それをラップした
・EPPlus
hhttps://www.nuget.org/packages/EPPlus/
などのライブラリを使ってデータを書き換え,OneDrive/Google Driveの各APIでアップロードすれば,該当する作業ができるように思えます。

[ツリー表示へ]
タイトルRe^2: google DOCとoffice365のフィールド
記事No11546
投稿日: 2015/12/12(Sat) 11:39
投稿者デファイアント
YuO様 お返事ありがとうございます。
まずは、第一歩として貴重な情報ありがとうございます。

まだ精読してないのですが
恐らく、ダウンロード後->修正->アップロードという順番ですよね
これだと、作業中にデータ競合がおこる可能性があります。
そんなに厳しいシステムではないので、
まあ、2,3セル違ってもなんとかなる感じですが
最初からそれを前提にするのはちとつらいなって感じです。

[ツリー表示へ]
タイトルRe^3: google DOCとoffice365のフィールド
記事No11548
投稿日: 2015/12/14(Mon) 12:22
投稿者YuO
> 恐らく、ダウンロード後->修正->アップロードという順番ですよね

そうです。

> これだと、作業中にデータ競合がおこる可能性があります。
> そんなに厳しいシステムではないので、
> まあ、2,3セル違ってもなんとかなる感じですが
> 最初からそれを前提にするのはちとつらいなって感じです。

そもそも,Google DriveとOneDrive双方に対して共通のTransactionを用意できないので,
両方を処理しようとすれば当然競合が発生し得ます。
なので,競合は前提とすべきかと思います。
# 現在も手作業で処理しているとすれば,当然競合が起きうる状況のはずです。

HTTP/1.1にはIf-Matchというリクエストフィールドがあります。
そして,Google Drive APIもOneDrive APIも,どちらもIf-Matchに対応しているようなので,競合が検知可能です。
競合が検知されたら処理をやり直すようにすればよいのではないでしょうか。

なお,処理順序ですが,OneDrive APIではResumable Uploadにおいてキャンセル可能ですが,
hhttps://dev.onedrive.com/items/upload_large_files.htm
Google Drive APIにはキャンセルが用意されていません。
このため,
1. OneDrive側でセッション作成
2. Google Drive側でアップロード
3. OneDrive側でアップロード
の順番になるかと思います。

[ツリー表示へ]
タイトルRe: google DOCとoffice365のフィールド
記事No11547
投稿日: 2015/12/12(Sat) 12:44
投稿者魔界の仮面弁士
> たとえば docsのあるセルに10とあり
> excelのセルに20 となっていて
> 合計をとりexcelまたはdocsに30と入力したいのです。

このあたりかも。


https://developers.google.com/google-apps/spreadsheets/

[ツリー表示へ]