在GAS中导入CSV - 太慢了

时间:2017-04-14 13:21:10

标签: csv google-apps-script google-sheets

我有一个导入CSV文件的脚本。 它有效,但在我看来它真的很慢。 由于CSV文件很大,脚本超过了最大执行时间。

有没有人就如何提高我的代码速度提出建议?

仅供参考:由于S3身份验证,我无法使用内置表单功能。

function myFunction() {

  var liquidityBalance = SpreadsheetApp.openByUrl(liquidityBalanceSheet).getSheetByName('Liquidity');
  var s3 = S3.getInstance(awsAccessKeyId, awsSecretKey);

  var fromS3 = s3.getObject(bucket, file);
  var data = Utilities.parseCsv(fromS3.getDataAsString(), '\t');
  var csv = []
  liquidityBalance.clearContents();
  for (var i = 0; i < data.length; i++) {
    var row = []
    for (var a = 0; a < data[i].length; a++) {
      row.push(data[i][a]);
    }
    liquidityBalance.appendRow(row);
  }
}

1 个答案:

答案 0 :(得分:1)

希望以下代码运行得更快。此代码汇编所有数据,然后将汇编数据写入一个操作,而不是一次附加一行。如果代码仍然超时,那么您将需要运行部分数据并知道最后离开的位置以继续下一批。

def remove_item(self, item_name, quantity, price):
    if quantity >= self.items[item_name]:
        self.total -= (self.items[item_name] * price)
        del self.items[item_name]
    else:
        self.total -= (quantity * price)
        self.items[item_name] -= quantity