【问题标题】:How to include Column K != null condition in google-apps-script?如何在 google-apps-script 中包含 Column K != null 条件?
【发布时间】:2019-02-05 10:57:13
【问题描述】:

我有一个代码,可以在我运行时将数据从一张工作表复制到另一个工作簿。但是,我只希望从 K 列不为空的原始工作表中复制特定数据。有人可以帮助推荐我如何将其合并到我的代码中吗?

提前致谢!

function transferList() 
{
   var sourceSheet = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Colombo");
 var sourceData = sourceSheet.getDataRange().getValues();
 sourceData.splice(0,1);  // Remove header
 var targetSS = . 
SpreadsheetApp.openById("TargetSheetID").getSheetByName("Tester");
  var targetRangeTop = targetSS.getLastRow(); // Get # rows currently in target
 targetSS.getRange(targetRangeTop+1,1,sourceData.length,sourceData[0].length).setValues(sourceData);

} 

【问题讨论】:

  • 好吧,你得看价值……

标签: google-apps-script google-sheets


【解决方案1】:

您可以遍历您的数据并将所有具有非空列 K 的值放入另一个数组中:

var targetData = [];
for (var i in sourceData) {
  if (sourceData[i][11] !== null && sourceData[i][11] !== '') {
    targetData.push(sourceData[i]);
  }
}

然后您将targetData 粘贴到您的目标表中。

【讨论】:

  • 感谢@a-change - 此代码有效 - 只需将 11 更改为 10,因为 i 为 0 并且 K 位于第 10 位:)
【解决方案2】:

在此处复制最终代码:

function transferList() 
{
  var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Colombo");
  var sourceData = sourceSheet.getDataRange().getValues();
  sourceData.splice(0,1);  // Remove header
  var rows = sourceSheet.getDataRange();
  var data = rows.getValues();
  var targetData = [];

  for (var i in sourceData) {
  if (sourceData[i][10] !== null && sourceData[i][10] !== '') {
    targetData.push(sourceData[i]);
  }
}
  var targetSS = SpreadsheetApp.openById("TargetSheetLink").getSheetByName("Tester");
  var targetRangeTop = targetSS.getLastRow(); // Get # rows currently in target
     targetSS.getRange(targetRangeTop+1,1,targetData.length,targetData[0].length).setValues(targetData);

}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多