【问题标题】:How do I loop through a column until I find a certain number?如何循环遍历一列,直到找到某个数字?
【发布时间】:2010-12-13 15:13:56
【问题描述】:

我正在尝试为 Google Docs 电子表格编写一个简单的脚本。下面的两个链接是我正在为其编写脚本的工作表的屏幕截图。

http://i.stack.imgur.com/uGik7.png

http://i.stack.imgur.com/AbKnQ.png

在表采购订单上,如果列 e == “库存”,那么我需要它来查找零件编号并调整表“库存”中的数量。贝娄是我正在尝试做的事情的开始。谁能帮帮我?

function updateInventoryFromPurchaseOrders() {
  var purchaseOrders = {}; // A mapping of partNumber => quantity.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Purchase Orders');
  if (sheet) {
    // For each row, if column "E" == "stock" then set partNumber, quantity.
    purchaseOrders[partNumber] = quantity;
  }
  // Now purchaseOrders should look like {'SL249':5, 'ML50':1, 'MWF':1}

  sheet = ss.getSheetByName('Inventory');
  if (sheet) {
    // For each row, set quantity, partNumber.
    var purchased = purchaseOrders[partNumber];
    // Set column "A" value = quantity + purchased
  }
}

感谢您的帮助。

【问题讨论】:

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


【解决方案1】:

javascript 不具有 foreach - 有可能解决此问题的方法,包括自己实现该机制。

如果它是一次性修复并且您将很快迁移到其他语言 - 我建议如下:

for( var CurrentRow=0; CurrentRow < DetermineMaxRows(); CurrentRow++ ) {
    if(isColumnEEqualStock()){
        //Things you want to do
    }
}

类似于遍历行和列的东西...

如果您想实现自己的 foreach,请查看 this 站点。

如果您打算扩展您的 Javascript 工作,请考虑 link text

否则考虑用 Java 制作小程序并实现它们而不是脚本。

【讨论】:

  • 我只是有点困惑。我不确定如何将该代码写入我的脚本。
【解决方案2】:

如果您的库存标志和数量在同一张表中,您可以在同一个数组中获取整个内容(使用 .getDataRange() 来获取所有内容),然后当您找到库存内容时,您可以只抓取该行中的下一个索引。

var partNumbers = sheet.getDataRange().getValues(); 

for(num in partNumbers){
  if(partNumbers[num][4] == 'stock'){ //
    // Assuming quantity is in column F
    purchaseOrders[partNumber] = partNumbers[num][5];
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多