javascript - 如何使用 Google Apps 脚本上的电子表格一次更新一行的所有列?

标签 javascript google-apps-script

我阅读了其他一些类似的问题,但我无法理解如何在我的代码上执行此操作。

我有一个电子表格,将填充一个应用程序,我正在使用appendRow添加行,但现在我需要用新的数据数组更新整行,如果我收到的行中的变量pid(Código)存在于电子表格中,我需要更新它,而不是添加新行。

My Spreadsheet

    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];

         // loop through all rows to check the column "pid" has the value of variable "pid"

          for(var i = 1; i < data.length; i++){

            if(data[i][0] == pid){
              updateIndex = i;
            }


          }

      // Update the row here with "rowData"? 
      sheet.



  } catch(e){

    console.log(e);

  }

  return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType);



}

最佳答案

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);
}

Sheet.getRange(start row,start col,number of rows,number of columns)

关于javascript - 如何使用 Google Apps 脚本上的电子表格一次更新一行的所有列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60517024/

相关文章:

javascript - 如何将包含特定字符串的url添加到数组中?

javascript - 使用 jQuery 从多个选择元素中删除最后一个选项值

javascript - 在变量中声明一个 JavaScript 函数?

javascript - Google Apps 脚本中的 Google 云端硬盘共享对话框

javascript - 如何从url中获取utf参数?

javascript - 为什么我需要加载 JavaScript 模块,所有这些加载器之间有什么区别?

google-apps-script - 如何解码 HTML 实体

google-apps-script - Google Apps 脚本中的 MailApp.sendEmail() 不发送电子邮件

google-apps-script - 从 Gmail 导入 XLS - 基于昨天日期的工作表

google-apps-script - 如何在 Google 表格中创建 "reverse pivot"?