【问题标题】:Edit Specific Rows in Google Drive Spreadsheets编辑 Google Drive 电子表格中的特定行
【发布时间】:2016-12-20 22:49:45
【问题描述】:

我拥有一家小型承包公司。我的目标是创建一个谷歌脚本,允许承包商报告他们的工作时间并从我们的客户支付的总小时数中扣除。这两个值都在谷歌电子表格中。但是,我在尝试将它们组合在一起时遇到了严重的麻烦。这是我目前所拥有的:

function sessionSubtractor() {

var phone = "+phoneNumber";
var messageBody = "clientName";

var twilio = SpreadsheetApp.openByUrl("spreadsheetURL");
var sheet = twilio.getActiveSheet();
var data = sheet.getDataRange();
var cells = data.getValues().toString();

    for (var i = 1; i<sheet.getLastRow(); i++) {

  if (phone === data.getCell(i,7).getValue()) {

    if (messageBody === data.getCell(i,2) {
     //decrease total session count here 
    }

} 





}

我的基本想法是让程序循环遍历工作表上的所有数据,当承包商输入与条目匹配时,然后从客户从公司购买的总小时数中扣除。事情是,我不知道如何编辑电子表格而不对单元格进行硬编码以进行编辑。任何帮助将不胜感激。

【问题讨论】:

  • 为什么要将 getValues() 转换为字符串?如果这是问题所在,我不会感到惊讶,如果不是,请向我们提供一些示例数据。

标签: javascript google-apps-script google-sheets drive


【解决方案1】:

这是构建脚本的标准方式:

function sessionSubtractor() {
  var phone = "+phoneNumber";
  var messageBody = "clientName";

  var twilio = SpreadsheetApp.openByUrl("spreadsheetURL");
  var sheet = twilio.getActiveSheet();
  var data = sheet.getDataRange();
  var cellsValues = data.getValues();

  for (var i = 1; i < cellsValues.length; i++) {
    if (phone === cellsValues[i][7]) {
      if (messageBody === cellsValues[i][7]) 
      {
        //decrease total session count here 
      }
    } 
  }
}

(请注意,我犯了错误,我真的不知道你的数据是什么样的,以便解释你想要实现的目标......所以,换句话说,我的脚本可能不会按照你的想法它应该。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2023-03-13
    相关资源
    最近更新 更多