3

データを Google スプレッドシートにプッシュするフォームを作成しました。データは、緯度、経度、場所、およびその他の識別データです。その後、スプレッドシートは .CSV ファイルとして公開され、ARC GIS にインポートされてインタラクティブ マップに表示されます。それは私が望んでいたとおりに機能し、変更のたびに再公開するように設定しました。

問題は、スプレッドシートにスクリプトによって追加された行がある場合、それが変更および再発行として認識されないことです。更新されたデータをマップにインポートするには、手動で再公開する必要があります。再公開を強制するために数行のコードを作成できる Google Apps Script を使用する方法はありますか? 次に、それを、私が持っている「フォーム送信時」スクリプト、または毎日午前 3 時にすでに実行されている別の時間ベースのスクリプトに追加できます。

Google Apps Script ドキュメントを調べましたが、何も見つかりませんでした。Web でヘルプを検索すると、圧倒的多数の回答が、スクリプトを他のテンプレートとして公開する方法に関するものです。

4

2 に答える 2

1

メニューエントリまたは時間ベースのトリガーのいずれかによって次の関数が実行された後、テストシートが再公開されました。

function ChangeIt() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
  var t = new Date()
  var x = 'upd: ' + t
  var range = sheet.getRange('a3')
  range.setValue(x)
}

もし私があなたの立場にあったなら、データを消費するシステムに影響を与えることなくスクリプトが変更できるいくつかの良性の定数データを含む列をシートの最後に追加します。追加の列がオプションでない場合は、サンプルを変更して現在の値を読み込み、変更して、すぐに元に戻してみてください。

また、フォームの送信によって新しい行が追加されたときに、スプレッドシートのonEdit()トリガーが起動するかどうかを確認します。その場合は、GAS関数をそれに関連付けて、再公開を強制します。そうでない場合は、GAS機能を実行するためのタイミングトリガーを設定します。

于 2013-03-17T01:01:31.703 に答える