Sheets API 4.0でのセル検索

687 views
Skip to first unread message

ben bugsy

unread,
Jun 28, 2017, 1:39:26 AM6/28/17
to Google Apps API Japan
お世話になります
stack overfollowにも投稿したのですがレスが付かないので
以前もレス頂いたこちらに投稿します

以前は、sheets api 3.0 + .netで悪戦苦闘していたのですが
今回は、httpによるJsonパラメータ送信という方法でSheets API 4.0に
書き換えています。

解説ページを参考に基本的なことはできました

今回の目的は、
対象となるセルを検索して、必要な情報を追加して書き換えをしたいと
思っています
必要な情報というのは、隣列のセル情報を見てその要素により
変更したので
FindReplaceRequestは、番地を返さないため利用できません

(1)セルの情報を検索して番地を返すようなリクエストはないのでしょうか

また、リクエストが存在しない場合は
ある程度セル範囲を指定してその情報をBatchGetで取得して
json解析後、書き換えるという方法でよいのでしょうか

(2)厳密な排他制御は必要ないのですが
必要なセルを取得して、書き換える文字列を作成したときに
誰かが、行 or 列を削除した場合、セル番地がずれますよね
こういった、ロック処理というのはないのでしょうか

よろしくお願いします

Tatsuya Nakano

unread,
Jun 28, 2017, 5:52:57 AM6/28/17
to Google Apps API Japan
中野です。 
 
(1)セルの情報を検索して番地を返すようなリクエストはないのでしょうか
また、リクエストが存在しない場合は
ある程度セル範囲を指定してその情報をBatchGetで取得して
json解析後、書き換えるという方法でよいのでしょうか
 
そのようなリクエストはなさそうです。
おっしゃるとおり以下のような手順になると思います。
  1. 範囲を指定してのBatchGet
  2. json解析
  3. BatchUpdate

(2)厳密な排他制御は必要ないのですが
必要なセルを取得して、書き換える文字列を作成したときに
誰かが、行 or 列を削除した場合、セル番地がずれますよね
こういった、ロック処理というのはないのでしょうか

範囲保護を使うと保護範囲内の行や列が追加できなくなります。 
A1から書き換える一番右下セルまでの範囲を保護すれば良い気がします。

もしくはファイル自体についている編集以上の権限を外します(API実行ユーザーは除く)


2017年6月28日水曜日 14時39分26秒 UTC+9 ben bugsy:

ben bugsy

unread,
Jul 3, 2017, 1:35:00 AM7/3/17
to Google Apps API Japan
中野様 ご回答ありがとうございます。
検索の件、方法がないということだけでも
わかってうれしいです
ないわけが無いといろいろ探しておりました。

また、範囲保護もprotectedrangerequestを使ってみて
動きは確認できました。
ただ、私の環境では、プログラムで利用している
ユーザーアカウントが1アカウントのため、
実行中にシートを保護しても別の処理で更新してしまう可能性があり
考えどころです。
処理ごとにロックできればベストなのですが
まあ、環境含め考えてみます

ありがとうございました

Reply all
Reply to author
Forward
0 new messages