Scripts da planilha do Google compartilhados em planilhas (não em bibliotecas)
Eu fiz uma tonelada de pesquisa para esse problema e acho que o problema é que todas as respostas resultam em uma solução que requer que você crie uma biblioteca. Então, a única maneira que vejo de adicionar essa biblioteca a uma planilha é criar um novo script para essa planilha e incluí-la.
O que eu quero: Um monte de planilhas que incluem um script mestre. Cada vez que o script é atualizado, todos eles são atualizados para usar o script mais recente.
O que eu tenho: 15 planilhas que possuem cópias do roteiro original. O script original mudou e agora parece que eu tenho que editar cada script chamadoCopy of myScriptName
que existe dentro de cada planilha copiada.
O que fiz: criei a primeira planilha e escrevi o script de dentro de um projeto que criei em seu editor de scripts. Trabalhou perfeito. Eu então fiz 14 cópias dessa planilha para cada divisão de uma empresa para usar.
Como posso compartilhar o script e gerenciá-lo fora de qualquer uma das planilhas individuais? Eu tenho que estar faltando alguma coisa aqui, considerando todas as pessoas que procuram essa mesma resposta. Eu só não vejo como fazer disso uma biblioteca resolve meu caso de uso.
Obrigado!
Eu não vejo o que isso vai ajudar, mas por solicitação do comentário aqui é o script:
function createRollupTable() {
//Return if:
// There is only the account code parameters passed in with no quarterly info
// If the length of the account code parameters passed is empty
if(arguments.length <= 1 || !arguments[0] || arguments[0].length <= 0) {
return "";
}
var rollupTable = new Array();
var fullListAccountCodes = arguments[0];
//The first column of output is the full list of account codes for all the quarters
rollupTable[0] = fullListAccountCodes;
//Array to keep the YTD total for each account code
var yearlyAccountCostOutput = new Array(fullListAccountCodes.length);
//Iterate over all the quarters that were passed in
for(var i=1;i<arguments.length;i++) {
//This array should be set to the total length of the available account codes
var quarterlyRollupCostOutput = new Array(fullListAccountCodes.length);
var quarterlyBreakdown = arguments[i];
var quarterIndexCounter = 0;
var quarterTotalCost = 0;
//Iterate over all the account codes
for(var j=0;j<fullListAccountCodes.length && quarterIndexCounter<quarterlyBreakdown.length;j++) {
//Find the one that matches the current account code for this quarter
if(fullListAccountCodes[j] == quarterlyBreakdown[quarterIndexCounter][0]) {
//Set the index of the output based on the full list so they align
quarterlyRollupCostOutput[j] = quarterlyBreakdown[quarterIndexCounter][1];
//Add this cost to the running total for the quarter
quarterTotalCost += quarterlyBreakdown[quarterIndexCounter][1];
//Add the total amount for the yearly rollup for that account code
if(yearlyAccountCostOutput[j]) {
yearlyAccountCostOutput[j] += quarterlyBreakdown[quarterIndexCounter][1];
} else {
yearlyAccountCostOutput[j] = quarterlyBreakdown[quarterIndexCounter][1];
}
//Increment the counter so we search for the next account code in the quarter
quarterIndexCounter++;
}
}
rollupTable[i] = quarterlyRollupCostOutput;
//Add a blank row in the results for spacing
rollupTable[i].push("");
//Add the quarterly total cost
rollupTable[i].push(quarterTotalCost);
}
//Add a blank row for spacing
rollupTable[0].push("");
//Google spreadsheet forces you to pad with non breaking spaces, no right align option available
var spaces = "";
var numSpaces = 66;
for(var i=0;i<numSpaces;i++){spaces+=String.fromCharCode(160);};
//Add a row for the Totals
rollupTable[0].push(spaces + "Totals:");
//Add the YTD column
rollupTable.push(yearlyAccountCostOutput);
return rollupTable;
}