修剪从Google Spreadsheet范围获取的字符串并返回最大值

时间:2017-07-03 13:49:27

标签: javascript google-apps-script

我正在构建一个小脚本,在其上,我需要"阅读"一系列细胞中的最大值。细胞看起来像这样:" a-10"," a-3"," a-4"等等,但它们的实际值分别为10,3和4。我无法删除" a - "来自细胞。

到目前为止我所拥有的是:

代码:



function getLargestValue() {
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sheets=['Sheet1','Sheet2','Sheet3'];
  var values=[];
  for(var i=0;i<sheets.length;i++)
  {
    var sht=ss.getSheetByName(sheets[i]);
    var rng=sht.getDataRange();
    var rngA=rng.getValues();
    for(var j=1;j<rngA.length;j++)
    {
      rngA[j][0] = substring(2, rngA[j][0]);
      values.push(rngA[j][0]);
    }
  }
  values.sort(function(a, b) {return a - b;});
  var max = values[values.length-1];
  SpreadsheetApp.getUi().alert('The max is ' + max); //Just checking to be sure it works
  return max;     
  // must show the largest value on "Max" sheet
}
&#13;
&#13;
&#13;

链接到电子表格:

https://docs.google.com/spreadsheets/d/16WrsztYlOV7qDOMBqGYU8az26Bw9NoqdQ4Imk_hZM90/edit?usp=sharing

我仍然需要修剪字符串并在不同的工作表中插入最大值。我怎么能这样做?

谢谢。

2 个答案:

答案 0 :(得分:0)

在你的排序功能之前,我会尝试像

这样的东西
// Use a regex to get any numbers from the cell value and make
// a new array
var numbers = values.map(function(el) { return /[0-9]+/.exec(el) }

然后在返回之前结束

// Put the 'max' value in 'MAX' sheet in cell 'A1'
ss.getSheetByName('MAX').getRange("A1").setValue(max)

旁注:您还可以获得这样的最大数量:

var max = Math.max(1,2,3,4,5)

OR

var max = Math.max.apply(null,ARRAY_OF_NUMBERS)

答案 1 :(得分:0)

response_update = client.update_item(
    TableName = 'tableName',
    Key = {
    'k1': {
    'S': 'v1'
    },
    'k2': {
    'S': 'v2'
    }
    },
    UpdateExpression="SET History=list_append(if_not_exists(History, :empty_list), :attrValue)",
    ExpressionAttributeValues = {":attrValue" :{"L":[ { "M" : { "id" : { "S" : "123" }, "UUID" : { "S" : "uuid123" }, "Flow" : { "L" : [ { "S" : "now2" } ] } } } ]},":empty_list":{"L":[]}})