我正在尝试为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
}
}
感谢您的帮助。
答案 0 :(得分:0)
javascript没有foreach特色 - 有可能解决这个问题,包括自己实现这个机制。
如果是一次性修复,您很快就会迁移到其他语言 - 我建议如下:
for( var CurrentRow=0; CurrentRow < DetermineMaxRows(); CurrentRow++ ) {
if(isColumnEEqualStock()){
//Things you want to do
}
}
通过行和列迭代的东西......
如果您想实施自己的foreach,请查看this网站。
如果您计划扩展Javascript工作,请考虑link text。
否则考虑用Java创建applet并实现它们而不是脚本。
答案 1 :(得分:0)
如果您的股票标志和数量在同一张表中,您可以将整个内容放在同一个数组中(使用.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];
}
}