我在谷歌表單上有一個腳本,它使用表單提交中的資料重命名目標檔案夾中的檔案。我希望記錄提交的谷歌表有一個與檔案同名的列。表單提交給我留下了 A:E 中的資料,我想在 F 中添加新列。我可能會使用作業表中的公式來實作這一點,但是 -
- 用于重命名我的檔案的一個引數是使用 Utilities.formatDate(現在)、日期/時間的日期/時間,它記錄的時間似乎與作為 google 作業表上的時間戳記錄的時間略有不同 - 似乎有 2 秒的差異通常,但如果它更多/更少,在谷歌表中使用時間戳的公式可能不準確
- 表單提交會降低手動輸入的行,這樣公式就不會粘在新添加的行中的單元格上。我可以手動添加它,但這有點痛苦。
我希望作業表能夠自動填充下面 F 列中的相同輸出,這樣可以避免這兩個問題。
var name = FormattedDate ' - ' source ' - ' 性別 ' - ' age file.setName(name)
完整代碼如下 -
function onFormSubmit1() {
var form=FormApp.getActiveForm();
var length=form.getResponses().length;
var gender=form.getResponses()[length-1].getItemResponses()[0].getResponse();
var age=form.getResponses()[length-1].getItemResponses()[1].getResponse();
var source=form.getResponses()[length-1].getItemResponses()[2].getResponse();
var id=form.getResponses()[length-1].getItemResponses()[3].getResponse();
var now = new Date();
var FormattedDate = Utilities.formatDate(now, Session.getScriptTimeZone(), "yyyy.MM.dd HH:mm:ss");
var file=DriveApp.getFileById(id);
name = file.getName();
var name = FormattedDate ' - ' source ' - ' gender ' - ' age
file.setName(name);
var source_folder = DriveApp.getFolderById('folderidcoderemoved');
}
uj5u.com熱心網友回復:
我相信你現在的情況和你的目標如下。
- 您的腳本已放入 Google 表單的腳本編輯器中。
- 您的腳本由 OnSubmit 觸發器運行。
- 提交表單時,您希望將檔案名放在“F”列中。
在這種情況下,如何進行以下修改?
修改后的腳本:
請設定ssId和sheetName。
function onFormSubmit1() {
var form = FormApp.getActiveForm();
var length = form.getResponses().length;
var gender = form.getResponses()[length - 1].getItemResponses()[0].getResponse();
var age = form.getResponses()[length - 1].getItemResponses()[1].getResponse();
var source = form.getResponses()[length - 1].getItemResponses()[2].getResponse();
var id = form.getResponses()[length - 1].getItemResponses()[3].getResponse();
var now = new Date(); // or form.getResponses()[length - 1].getTimestamp();
var FormattedDate = Utilities.formatDate(now, Session.getScriptTimeZone(), "yyyy.MM.dd HH:mm:ss");
var file = DriveApp.getFileById(id);
name = file.getName();
var name = FormattedDate ' - ' source ' - ' gender ' - ' age
file.setName(name);
var source_folder = DriveApp.getFolderById('folderidcoderemoved');
// And, I added below script.
var ssId = "###"; // Please set the Spreadsheet ID of Spreadsheet that the submitted data is put.
var sheetName = "###"; // Please set the sheet name of submitted data.
var sheet = SpreadsheetApp.openById(ssId).getSheetByName(sheetName);
sheet.getRange("F" sheet.getLastRow()).setValue(name);
}
- 在這個修改中,當腳本運行時, 的值
name被放到最后提交行的“F”列中。 - 我無法理解你的腳本
var source_folder = DriveApp.getFolderById('folderidcoderemoved');。如果您的顯示腳本不完整,請注意這一點。
筆記:
- 關于 的值
now,請根據您的情況選擇var now = new Date();或var now = form.getResponses()[length - 1].getTimestamp();。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/402618.html
標籤:
