Come faccio a ciclo attraverso una colonna fino a trovare un certo numero?
-
09-10-2019 - |
Domanda
Sto cercando di scrivere un semplice script per un foglio di calcolo di Google Docs. I due link qui sotto sono uno screenshot dei fogli che sto scrivendo la sceneggiatura.
http://i.stack.imgur.com/uGik7.png
http://i.stack.imgur.com/AbKnQ.png
Il Foglio Ordini di acquisto, Se la colonna e == "magazzino", quindi ho bisogno di trovare il numero di parte e regolare la quantità in lamiera "Inventario". Bellow è un inizio a quello che sto cercando di fare. Qualcuno può darmi una mano?
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
}
}
Grazie per l'aiuto.
Soluzione
javascript non è così caratteristica foreach -. Ci sono i modi di aggirare il problema, tra cui l'attuazione del meccanismo di soli
Se è un Fix sola volta e si migrare verso qualche altra lingua presto - vorrei suggerire quanto segue:
for( var CurrentRow=0; CurrentRow < DetermineMaxRows(); CurrentRow++ ) {
if(isColumnEEqualStock()){
//Things you want to do
}
}
Qualcosa simmilar per l'iterazione attraverso righe e colonne ...
Se si desidera implementare il proprio foreach dare un'occhiata a questo sito .
Se si prevede di ampliare i vostri sforzi Javascript considerano testo del link .
In caso contrario, pensare di fare appletts in Java e la loro applicazione, invece di uno script.
Altri suggerimenti
Se la tua bandiera per il magazzino, e la quantità sono nello stesso foglio, si potrebbe ottenere l'intero contenuto dello stesso array (utilizzato .getDataRange (), ad appena afferrare tutto), poi quando si trova la tua nel contenuto stock, si può semplicemente prendere l'indice successivo in quella riga.
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];
}
}