Google表格:如何使用2d getValues数组追加Row?

时间:2015-02-03 20:43:59

标签: google-apps-script google-sheets

寻求有关此功能的帮助。

背景: 我正在为我们的公司创建一个基于Google表格的订单,没有太大的支持约100家商店。问题在于将行附加到我的数据收集表,数据库中的操作。我在使用.appendRow操作时遇到了麻烦。

function grabOrder(){
    var ordNum = ss.getRange("B2").getValue();
    var storeCode = ss.getRange("B1").getValue();
    var ordValues = ss.getRange("A1:A100").getValues();

    insertInfo(ordNum, storeCode, ordValues); 
}

function insertInfo(ordNum, storeCode ,ordValues){

    ssDb.appendRow([ordNum, storeCode, ordValues]);

}

结果:运行我的代码时,它不会抛出错误,它会完成操作并且ordNum,storeCode正确显示。但是ordValues出现在这个:

[Ljava.lang.Object; @ 78f4b2bd

注意:我提供的代码是我代码的极简化版本,因为我唯一的问题在于appendRow数组。

潜在解决方案:我知道getValues会抓取一个二维数组,而appenRow只会占用一维。我的猜测是我需要将2d阵列转换为1d数组并将其存储在变量中?求救!

已解决:这就是我所做的:

var orderString = timeStamp + "," + ordNum + "," + clc + "," + orderRng.toString();
var orderValues = orderString.split(",");

然后我就像这样传递新数组:

ssDb.appendRow(orderValues);

希望你们能在将来找到它。

1 个答案:

答案 0 :(得分:1)

function grabOrder(){
  var ordNum = ss.getRange("B2").getValue();
  var storeCode = ss.getRange("B1").getValue();

  var ordValues = ss.getRange("A1:A100")
    .getValues()
    .map(function (row) {
      return row[0];
    });

  insertInfo(ordNum, storeCode, ordValues);
}

function insertInfo(ordNum, storeCode ,ordValues){
  ssDb.appendRow([ordNum, storeCode].concat(ordValues));
}