我正在嘗試將我從網站從“反饋”表中獲得的每日反饋保存到另一個我稱為“反饋資料庫”的谷歌表中
A列:日期 B列:時間 C列:電子郵件地址 D列:反饋
資料行從第 3 行開始。
我目前正在根據我所擁有的基本知識來保存資料:
- 復制“反饋”表中第 3 行的所有資料
- 將其保存到“資料庫”表
- 回到“反饋”表并洗掉第 3 行,使第 4 行中的資料變為第 3 行。
我有另一個函式可以計算行數并根據行數運行 saveFeedback_Data() 函式。
我知道我在第 3 步中所做的不是正確的方法,如果你們推薦一種更好的方法來執行此功能并通過評論來理解,我將不勝感激。
感謝你的幫助,
function saveFeedback_Data() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('feedback'), true);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var Date= sheet.getRange('feedback !A3').getValue();
var Time = sheet.getRange('feedback !B3').getValue();
var Email = sheet.getRange('feedback !C3').getValue();
var Feedback = sheet.getRange('feedback !D3').getValue();
var sheet_dest = ss.getSheetByName("Database");
sheet_dest.appendRow([Date,Time, Email,Feedback]);
Logger.log('Issue Date : ' Date ' Issue time : ' Time ' Email Address : ' Email ' Feedback : ' Feedback '\n');
//now deleting the row
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('feedback'), true);
spreadsheet.getRange('3:3').activate();
spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
spreadsheet.getRange('A10').activate();
}
uj5u.com熱心網友回復:
保存反饋資料
這將運行大約十倍
function saveFeedback_Data() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Feedback');
const shsr = 3;
const dbsh = ss.getSheetByName('Database');
const rg = sh.getRange(shsr, 1, sh.getLastRow() - shsr 1, 4);
const vs = rg.getValues().filter(r => !r.every(e => !e));//gets all non blank rows at one time
dbsh.getRange(dbsh.getLastRow() 1, 1, vs.length, vs[0].length).setValues(vs);//moves all data at one time
rg.clearContent();//clears all data at one time
}
您可以轉到Google Apps Script Reference并使用搜索框查找您不理解的任何功能。如果它是純 JavaScript 函式,請轉到此處
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/374807.html
