Javascript 如何使用GoogleApps脚本上的电子表格一次更新一行的所有列?
我读了一些其他类似的问题,但我不明白如何在我的代码中做到这一点 我有一个电子表格,它将填充一个应用程序,我正在使用appendRow添加行,但现在我需要用新的数据数组更新整行,如果电子表格上存在我正在接收的行的变量pid(Código),我需要更新它,而不是添加新行Javascript 如何使用GoogleApps脚本上的电子表格一次更新一行的所有列?,javascript,google-apps-script,Javascript,Google Apps Script,我读了一些其他类似的问题,但我不明白如何在我的代码中做到这一点 我有一个电子表格,它将填充一个应用程序,我正在使用appendRow添加行,但现在我需要用新的数据数组更新整行,如果电子表格上存在我正在接收的行的变量pid(Código),我需要更新它,而不是添加新行 功能数据集(请求){ var sheet=电子表格应用程序openById(“文档ID”); var data=sheet.getActiveSheet().getDataRange().getValues(); var更新指数;
功能数据集(请求){
var sheet=电子表格应用程序openById(“文档ID”);
var data=sheet.getActiveSheet().getDataRange().getValues();
var更新指数;
试一试{
var pid=request.parameter.pid;
var nome=request.parameter.nome;
var desc=request.parameter.desc;
var marca=request.parameter.marca;
var tipo=request.parameter.tipo;
var preco=request.parameter.preco;
var-ativado=request.parameter.ativado;
var rowData=[pid、nome、desc、marca、tipo、preco、ativado];
//循环所有行,检查列“pid”是否具有变量“pid”的值
对于(变量i=1;i
- 当列“A”的值中包含
时,您希望将该行替换为pid
rowData
- 当列“A”的值中不包括
时,您希望用pid
追加新行rowData
function doGet(request) {
var sheet = SpreadsheetApp.openById("DOCUMENT_ID");
var range = sheet.getActiveSheet().getDataRange(); // Added
var data = range.getValues(); // Modified
var updateIndex = 0; // Modified
try{
var pid = request.parameter.pid;
var nome = request.parameter.nome;
var desc = request.parameter.desc;
var marca = request.parameter.marca;
var tipo = request.parameter.tipo;
var preco = request.parameter.preco;
var ativado = request.parameter.ativado;
var rowData = [pid, nome, desc, marca, tipo, preco, ativado];
for(var i = 1; i < data.length; i++){
if(data[i][0] == pid){
data[i] = rowData; // Added
updateIndex = i;
}
}
if (updateIndex != 0) { // Added
range.setValues(data);
} else {
sheet.appendRow(rowData);
}
} catch(e){
console.log(e);
}
// In your script, "result" is not declared. Please be careful this.
return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType);
}
功能数据集(请求){
var sheet=电子表格应用程序openById(“文档ID”);
var range=sheet.getActiveSheet().getDataRange();//已添加
var data=range.getValues();//已修改
var updateIndex=0;//已修改
试一试{
var pid=request.parameter.pid;
var nome=request.parameter.nome;
var desc=request.parameter.desc;
var marca=request.parameter.marca;
var tipo=request.parameter.tipo;
var preco=request.parameter.preco;
var-ativado=request.parameter.ativado;
var rowData=[pid、nome、desc、marca、tipo、preco、ativado];
对于(变量i=1;i
注:
- 在脚本中,未声明
。请小心这个result
- 修改Web应用脚本时,请将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。因此,请注意这一点。
function doGet(request) {
var sheet=SpreadsheetApp.openById("DOCUMENT_ID");
var data=sheet.getActiveSheet().getDataRange().getValues();
var updateIndex;
try{
var pid=request.parameter.pid;
var nome=request.parameter.nome;
var desc=request.parameter.desc;
var marca=request.parameter.marca;
var tipo=request.parameter.tipo;
var preco=request.parameter.preco;
var ativado=request.parameter.ativado;
var rowData=[pid, nome, desc, marca, tipo, preco, ativado];
for(var i=1; i < data.length; i++){
if(data[i][0] == pid){
updateIndex=i;
break;
}
}
sheet.getRange(updateIndex+1,1,1,rowData.length).setValues([rowData]);
} catch(e){
console.log(e);
}
return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType);
}
pid
时,您希望将该行替换为rowData
pid
时,您希望用rowData
追加新行function doGet(request) {
var sheet = SpreadsheetApp.openById("DOCUMENT_ID");
var range = sheet.getActiveSheet().getDataRange(); // Added
var data = range.getValues(); // Modified
var updateIndex = 0; // Modified
try{
var pid = request.parameter.pid;
var nome = request.parameter.nome;
var desc = request.parameter.desc;
var marca = request.parameter.marca;
var tipo = request.parameter.tipo;
var preco = request.parameter.preco;
var ativado = request.parameter.ativado;
var rowData = [pid, nome, desc, marca, tipo, preco, ativado];
for(var i = 1; i < data.length; i++){
if(data[i][0] == pid){
data[i] = rowData; // Added
updateIndex = i;
}
}
if (updateIndex != 0) { // Added
range.setValues(data);
} else {
sheet.appendRow(rowData);
}
} catch(e){
console.log(e);
}
// In your script, "result" is not declared. Please be careful this.
return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType);
}
功能数据集(请求){
var sheet=电子表格应用程序openById(“文档ID”);
var range=sheet.getActiveSheet().getDataRange();//已添加
var data=range.getValues();//已修改
var updateIndex=0;//已修改
试一试{
var pid=request.parameter.pid;
var nome=request.parameter.nome;
var desc=request.parameter.desc;
var marca=request.parameter.marca;
var tipo=request.parameter.tipo;
var preco=request.parameter.preco;
var-ativado=request.parameter.ativado;
var rowData=[pid、nome、desc、marca、tipo、preco、ativado];
对于(变量i=1;i
注:
- 在脚本中,未声明
。请小心这个result
- 修改Web应用脚本时,请将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。因此,请注意这一点。
函数doGet(请求){
function doGet(request) {
var sheet=SpreadsheetApp.openById("DOCUMENT_ID");
var data=sheet.getActiveSheet().getDataRange().getValues();
var updateIndex;
try{
var pid=request.parameter.pid;
var nome=request.parameter.nome;
var desc=request.parameter.desc;
var marca=request.parameter.marca;
var tipo=request.parameter.tipo;
var preco=request.parameter.preco;
var ativado=request.parameter.ativado;
var rowData=[pid, nome, desc, marca, tipo, preco, ativado];
for(var i=1; i < data.length; i++){
if(data[i][0] == pid){
updateIndex=i;
break;
}
}
sheet.getRange(updateIndex+1,1,1,rowData.length).setValues([rowData]);
} catch(e){
console.log(e);
}
return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType);
}
var sheet=电子表格应用程序openById(“文档ID”);
var data=sheet.getActiveSheet().getDataRange().getValues();
var更新指数;
试一试{
var pid=request.parameter.pid;
var nome=request.parameter.nome;
var desc=request.parameter.desc;
var marca=request.parameter.marca;
var tipo=request.parameter.tipo;
var preco=request.parameter.preco;
var-ativado=request.parameter.ativado;
var rowData=[pid、nome、desc、marca、tipo、preco、ativado];
对于(变量i=1;i