1

問題は、私はさまざまなスプレッドシート (a) を 1 人だけが表示および編集する権限を持っており、さらに他の人がそれらのスプレッドシートからのデータを必要とし (a) 自分のスプレッドシート (b) を取得できる必要があることです。スプレッドシートからのデータの更新版 (a)

私は現在、編集機能 (スプレッドシートの特定のフィールドを変更する必要があります) を備えたインストール可能なトリガーを使用してデータを更新する回避策を作成しましたが、ユーザーはクリックできるボタン/図面または取得するメニュー エントリが必要です。スプレッドシートからの更新されたデータ (a)。

私の観点からすると、インストール可能なトリガーをボタン/描画/メニュー エントリと組み合わせるのは行き止まりです。したがって、私の質問は、データが由来するドキュメントへの表示または編集権限を付与せずに、スプレッドシートからのデータへのアクセスを許可する他の可能性があるかどうかです...

誰かがアイデアを持っていれば素晴らしいでしょう、事前に感謝します

4

3 に答える 3

1

遭遇するスプレッドシートで使用されるトリガーにはいくつかの制限があります。詳細はこちらをご覧ください。基本的に、onEditトリガーは別のスプレッドシートにアクセス/変更できません。They cannot access any services that require authentication as that user.

現在のスプレッドシート以外の別のスプレッドシートを更新するには、関数とメニュー項目をインストールしてトリガーします。(これはあなたが話す行き止まりですか?)グループを更新するのはユーザーに依存しますが、他の人に情報を許可するにはキー所有者の知識が必要なため、これは私の安全なデータにとって利点です。これは可能ですが、Aのスプレッドシートへの編集アクセス権が必要です。BBA

いいえ、少なくとも閲覧者として情報にアクセスできない限り、B情報を取得することはできません。A個々のセルに表示権限を付与することはできません。これは基本的にあなたがやりたいことです。

その能力がなければ、解決策はデータの流れを構造化することにあります。ユーザーがチームを定期的に更新することを信頼できないことを証明した1つのセネリオでは、私は自分自身をとして作成しました0。とへのアクセス許可がAありBます。関数from0からaccessAとupdateを実行するとB、電子メールも送信されるので、最後の更新がいつ行われたかがわかります。Aスプレッドシートを使用して関数を実行しないのはなぜですか 。データを見ることなく、スプレッドシートに0アクセスして書き込むことができるからです。Bそれは無知のベールです。私は実際に開くことはなくA0空のままです。

私にできる最善のこと。

于 2012-08-28T19:13:35.450 に答える
0

私は同様の問題に直面しています。

回避策を見つけたと思いますが、保証はありません。importrangeスクリプト経由で制御する機能を使用しました。importrangeフラッシュ機能を試してみたところ、(念のため)に追加した を強制的に機能させる良いトリガーであることがわかりましたMenu

function onOpen() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var menuEntries = [];
    menuEntries.push({name: "Refresh", functionName: "SheetFlush"});
    ss.addMenu("Menu", menuEntries);
}

function SheetFlush() {
    SpreadsheetApp.flush();
}

ここで、 SS 固有のアドレスBをユーザーに知られたくないので。Aimportrange関数を見るとき)

SSのimportrange機能でシートを保護・非表示にしています。そして、非表示のシートに SS で B追加の内部参照を使用しています。B

于 2012-08-28T22:03:31.500 に答える
0

私はあなたの異常に対する答えを持っているかもしれません。私のアプリケーション クライアントは、私の googleapp ワークグループの人々であり、ファイルを表示する権限はありませんが、完全に見知らぬ人ではありません。

以下がうまくいくと思います。ファイルは、コードを含むマスター ファイルです。B ファイルには、共有権限を持つ A からの importrange() 関数があります。また、C ファイルには、B ファイルの共有権限を持つ B からの importrange() があります。ちょっとしたひねりは、Bファイルにリンクされたシートがあり、非表示で保護されていることです。これを確認しました。あなたが所有者でない場合は、再表示できます。

実際には、2 つの SpreadSheets を使用して同様のトリックを行うことができます。3 つ目は安全性を高めるためのものです。

于 2012-09-02T10:55:53.687 に答える