我需要一些幫助,因為我對 Google App Script 編程語言的了解為零,而且我無法解決這個問題;我在不同的論壇上搜索了解決方案,并在 YouTube 上觀看了很多不同的視頻,但我無法根據需要更改代碼。
我正在將 Google Script 與 MIT App Inventor 結合使用(這是我復制代碼的頁面:https ://ai2.metricrat.co.uk/guides/google-sheet-crudq-ii ),我需要更改“DELETE”功能(最后一個)將要洗掉的行復制到同一 Google 表格中的另一張表格(稱為 ORP_completati)中
function doGet(e) {
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SH);
var logSheet = ss.getSheetByName("ORP_completati");
var fn = e.parameter.FN;
var rg = sh.getDataRange().getValues();
const now = new Date();
// Create/Add new record, using comma separated values
if ( fn == 'CREATE' ) {
var data = e.parameter.DATA.split(',');
sh.appendRow(data);
return ContentService.createTextOutput("New record created");
}
// Reads/Returns all data as a stringified JSON List
else if ( fn == 'READ' ) {
return ContentService.createTextOutput(JSON.stringify(rg));
}
// Edit/Update existing record, requires index/row and current col1 to match
else if ( fn == 'UPDATE' ) {
var index = e.parameter.INDEX; //index in list
var col1 = e.parameter.COL1; // current/existing value of col1 - it could be replaced...
var data = e.parameter.DATA.split(','); //new data
var range = sh.getRange((parseInt(index) 1),1,1,data.length);
for (var i = 0; i < rg.length; i ) {
if ( index != undefined && i == index && col1 == rg[i][0] ) {
range.setValues([data]);
}
}
return ContentService.createTextOutput("Record updated");
}
// deletes a single record (and its row) from sheet. Requires row index and col1 to match
else if ( fn == 'DELETE' ) {
var index = e.parameter.INDEX; //index in list
var col1 = e.parameter.COL1; // current/existing value of col1 - it could be replaced...
for (var i = 0; i < rg.length; i ) {
if ( index != undefined && i == index && col1 == rg[i][0] ) {
sh.deleteRow(parseInt(index) 1);
}
}
return ContentService.createTextOutput("Versione 7 mod 9");
}
}
我希望一切都清楚,我要提前感謝您的幫助
uj5u.com熱心網友回復:
首先,獲取包含內容的最后一列(您將需要它來復制行中的所有列)
var lastColumn = sh.getLastColumn()
第二,獲得完整的行。getSheetValues 采用 4 個值:startRow、startColumn、行數和列數。
var copyRow = sh.getSheetValues(parseInt(index) 1, 1, 1, lastColumn)
第三,將行追加到 logSheet 表 - 請記住 getSheetValues 回傳一個二維陣列,而 appendRow 函式只接受一個一維陣列,因此您必須傳遞第一個元素。
logSheet.appendRow(copyRow[0])
最后,您可以洗掉該行
sh.deleteRow(parseInt(index) 1);
資源: https://developers.google.com/apps-script/reference/spreadsheet/sheet#getSheetValues(Integer,Integer,Integer,Integer) https://developers.google.com/apps-script/reference/spreadsheet/作業表#appendrowrowcontents
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488101.html
標籤:谷歌应用脚本
