綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[討論] TESTESTETEST

[複製連結] 查看: 8489|回覆: 0|好評: 0
跳轉到指定樓層
樓主
DeanChuang | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2024-9-10 19:29

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
幫我寫一個Apps stript 程式.我希當我從Google 表單上填寫完姓名,電話,LINE ID,姓別,年齡,身高,生日,體重,脂肪,內臟脂肪,基礎代謝,身體年齡,肌肉,骨量,水份,BMI,地址,信箱這些資料後按下送出會自動用姓名的值去我設指定好的Google Excel 裡面去找所有的頁籤名程看看有沒有相同名子的如果有則將這些值寫入這個頁籤空白的欄位中.反正如果沒有相同的名子.則建立新的頁籤.頁籤的名子請用姓名的值放最前面後面接著放今天的日期跟時間然後接兩個編號.第一個編號用刮弧包起來如果是今天第一個就從1開始接著第二個編號則檢查所有頁籤是否也有存在刮弧後的編號如果有就那個號碼加1反之如果沒有就從1開始....格式就像這樣....姓名-2024-09-04_15_43_43(1)-1 像這樣子命名頁籤的名稱.在將所有的值寫入頁籤中

Copilot
正在為您產生解答…

由 Copilot 傳送:
這是一個範例 Google Apps Script 程式碼,當你從 Google 表單提交資料後,會自動將資料寫入指定的 Google 試算表中,並根據你的需求進行頁籤的命名和資料寫入:

JavaScript

function onFormSubmit(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var formData = e.values;
  var name = formData[1]; // 假設姓名在第二欄
  var date = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd_HH_mm_ss');
  var sheetName = name + '-' + date + '(1)-1';
  var existingSheet = findSheetByName(sheet, name);

  if (existingSheet) {
    writeDataToSheet(existingSheet, formData);
  } else {
    var newSheet = createNewSheet(sheet, sheetName);
    writeDataToSheet(newSheet, formData);
  }
}

function findSheetByName(sheet, name) {
  var sheets = sheet.getSheets();
  for (var i = 0; i < sheets.length; i++) {
    if (sheets[i].getName().startsWith(name)) {
      return sheets[i];
    }
  }
  return null;
}

function createNewSheet(sheet, sheetName) {
  var newSheet = sheet.insertSheet(sheetName);
  // 在這裡可以初始化新頁籤的標題行
  newSheet.appendRow(['姓名', '電話', 'LINE ID', '性別', '年齡', '身高', '生日', '體重', '脂肪', '內臟脂肪', '基礎代謝', '身體年齡', '肌肉', '骨量', '水份', 'BMI', '地址', '信箱']);
  return newSheet;
}

function writeDataToSheet(sheet, data) {
  sheet.appendRow(data);
}
AI 產生的代碼。請仔細檢視及使用。 深入了解常見問題集。
這段程式碼的工作流程如下:

當表單提交時,onFormSubmit 函數會被觸發。
它會從提交的資料中提取姓名,並生成頁籤名稱。
使用 findSheetByName 函數檢查是否已存在以該姓名開頭的頁籤。
如果存在,則使用 writeDataToSheet 函數將資料寫入該頁籤。
如果不存在,則使用 createNewSheet 函數創建一個新頁籤,並將資料寫入新頁籤。
你可以根據實際情況調整這段程式碼,例如修改資料欄位的順序或名稱。如果有任何問題或需要進一步的幫助,隨時告訴我!

==================================================================

Google 的表單的欄位有17個欄位.欄位1.欄位2~欄位17. 我想要使用者填完表單按下送出時直接自動填入到Google Excel 中的 D2 這裡填入第1個值.後面的16個值依序從D3.D4~D18填入..請問有沒有辦法作到呢?
Copilot
正在為您產生解答…

由 Copilot 傳送:
是的,可以透過 Google Apps Script 來實現這個功能。以下是如何設定的步驟:

建立 Google 表單:
建立一個包含 17 個欄位的 Google 表單。
連接 Google 試算表:
在 Google 表單的回應頁面,點擊右上角的「綠色試算表」圖標,將回應連接到一個新的或現有的 Google 試算表。
編寫 Google Apps Script:
打開連接的 Google 試算表,點擊「擴充功能」->「Apps Script」。
在 Apps Script 編輯器中,輸入以下程式碼:
JavaScript

function onFormSubmit(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('工作表1'); // 替換為你的工作表名稱
  var responses = e.values.slice(1); // 去掉時間戳記
  for (var i = 0; i < responses.length; i++) {
    sheet.getRange(i + 2, 4).setValue(responses[i]); // D2 開始填入
  }
}
AI 產生的代碼。請仔細檢視及使用。 深入了解常見問題集。
設定觸發器:
在 Apps Script 編輯器中,點擊左側的「時鐘」圖標,進入觸發器頁面。
點擊右下角的「新增觸發器」,設定函數為 onFormSubmit,事件來源選擇「表單提交」。
這樣,當使用者提交表單時,回應將自動填入到 Google 試算表的 D2 到 D18 欄位中。

你可以試試看這個方法,看看是否符合你的需求。如果有任何問題或需要進一步的幫助,隨時告訴我!

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則