来自Google Apps脚本的GetValues为小写

时间:2016-01-18 04:54:56

标签: google-apps-script

我正在编写一个谷歌应用程序脚本,我从电子表格中获取值。但由于我需要查看是否与变量匹配,我需要确保值为小写。

     if (array != null) {
            if (array.length == 0)
                System.out.println("Empty Array Size=0");
            else
                System.out.println("Array Not Empty -  Size = " + array.length);

        } else
            System.out.println("array is null");
    } 

然后我想循环遍历值以查看是否存在匹配,如下所示: 行= 0;

  var sheet  = SpreadsheetApp.getActiveSpreadsheet();
  var column = sheet.getRange(A:A); 
  var values = column.getValues(); 

我的问题是这个......我可以确保变量"数据"是小写的,我怎样才能确保值[row]和值[row] [0]也是小写的?

3 个答案:

答案 0 :(得分:4)

您可以通过检查小写项目

来遍历值
?someparam=1&foo=2

这是for (var row in values) { if(values[row][0].toString().toLowerCase() !== data ) { // do something } } 一个数组,你的小写是什么意思?

答案 1 :(得分:1)

首先,我认为使用.getRange的符号将使用"A:A"之类的字符串作为参数,以返回包含A列中所有值的范围。

  • 使用Logger.log()typeof检查要返回的值的类型。 values将是一个二维数组,每个子数组包含每个相应单元格的值。

  • values[row]将返回数组,表示索引为row的单元格。数组显然不能小写。

  • values[row][0]将返回单元格中的值。您可以通过将字符串与空字符串(values[row][0]+"")连接来将值强制转换为字符串(以确保它始终是字符串),然后您可以应用通常的内置JS toLowerCase()方法,就像这样:(values[row][0]+"").toLowerCase();

  • 所以(values[row][0]+"").toLowerCase() !== data应该达到你想要的效果。

答案 2 :(得分:0)

我用这个:)

function onEdit(spreadsheet) {
  var spreadsheet = SpreadsheetApp.getActive();
  var range = spreadsheet.getRange("F3:F");
  var data  = range.getValues();

  for (var row = 0; row < data.length; row++) {
    for (var col = 0; col < data[row].length; col++) {
      data[row][col] = (data[row][col]).toString().replace(/á|à|ã|ä|A/gi, 'a');
      data[row][col] = (data[row][col]).toString().toLowerCase();
   }
  }
  range.setValues(data);
}