簡體   English   中英

在現有電子表格中為Google表單的每個響應創建一個新工作表

[英]Create a new sheet in an existing spreadsheet for EACH RESPONSE from a Google Form

我已經創建了一個Google表單,並且需要在現有電子表格中為從該表單收到的每個回復創建一個新表格-每個受訪者都會在電子表格中生成一個新表格。 使用某種onSubmit命令可以做到嗎? 我是Java的新手,但願意學習。 非常感謝你的幫助。

您無法在將數據寫入電子表格之前攔截Google表單提交。 您所要做的就是在將數據插入電子表格后對其進行操作。 因此,您的回復將被放入電子表格中,一開始就全部包含在表格中。 您無法更改。

現在的問題是,您是否要操作綁定到表單或表單的代碼中的數據? 您將要使用綁定到圖紙的項目。

這是一些示例代碼:

此代碼假定您要命名工作表的值在A列中。subSubForm(){Logger.log('submit ran');

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  //Get last row of data
  var lastRow = sheet.getLastRow();
  var colA_Data = sheet.getRange(lastRow, 1).getValue();

  //var thisUser = 'theUserName';
  ss.insertSheet(colA_Data);
};

舊答案:

每次提交新表單時,您都需要生成某種唯一的字符串。 我不知道你想要什么 您可以獲取用戶名,然后向其中添加日期/時間,然后為每個新工作表命名為帶有時間的用戶名。 基本代碼如下所示:

function submit(){
  Logger.log('submit ran');

  var thisUser = 'theUserName';
  var ss = SpreadsheetApp.getActive().insertSheet(thisUser);

};

注意Logger.log(); 聲明。 那會打印一些東西到日志。 在代碼編輯器內部,您可以選擇“ 查看”菜單和“ 日志”菜單項以顯示“日志”。

您還可以通過選擇功能名稱並單擊運行箭頭圖標,從代碼編輯器中“手動”運行代碼。 這樣,您可以運行代碼而無需每次都提交表單。 使代碼起作用,然后將其連接到onsubmit觸發器。

為此,您可以使用此命令( getActiveSpreadsheet() )獲取電子表格,然后根據此頁面上所需的參數創建一個新的表格。 您可以在onSubmit觸發器中添加此行代碼。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM