Come configurare smartphone e PC. Portale informativo
  • casa
  • Errori
  • Quale account ha eseguito lo script in Fogli Google. Scriviamo script per automatizzare il lavoro con le applicazioni Google

Quale account ha eseguito lo script in Fogli Google. Scriviamo script per automatizzare il lavoro con le applicazioni Google

Ciao a tutti

Casi d'uso Google Apps Molti script. Il mio amico lavorava con un cliente straniero e ogni giorno chiedeva un rapporto via email con il testo chi ha fatto cosa. Di conseguenza, ha chiesto ai dipendenti di tracciare tutto in un foglio di calcolo di Google entro le 21:00, quindi lo script è stato avviato, ha raccolto i dati e li ha inviati all'indirizzo richiesto.
Nell'articolo darò un semplice e, mi sembra, esempio utile utilizzando Google Script delle app.

Per accesso al software per i dati provenienti da Flurry, seguire le istruzioni all'indirizzo:
support.flurry.com/index.php?title=API/GettingStarted

Di conseguenza, riceverai una chiave che dovrai salvare per utilizzare nello script.
Avrai bisogno anche di "ProjectApiKey" di Flurry, che già utilizzi nell'applicazione mobile.

Scrivere una sceneggiatura

Più precisamente è già stato scritto tutto, qui descriverò semplicemente come avviarlo.
Segui il collegamento e ottieni i testi dello script github.com/chapayGhub/flurrymetricstospreadsheet
Nel progetto che abbiamo creato prima, dobbiamo creare gli stessi.

Ora, al termine di tutto, apri Settings.gs e al suo interno
Inserisci le tue chiavi Flurry
//memorizza le credenziali Flurry FlurryCredentials = (function() ( var obj = (); obj.AccessCode = "?????"; obj.ApiKies = ( iPad: "????", ); return obj; ) )();

Inserisci il tuo nome qui E-mail, meglio da Google (non ho controllato gli altri)
oggetto.emails = ["?????email1", "?????email2", "?????email3"];

Lo script è configurato per ricevere le metriche dell'applicazione da Flurry + al tuo Cassetta postale Riceverai una lettera che ti informa che sei stato aggiunto come redattore.

Avvia ed esegui il debug

Nel pannello di sinistra, seleziona lo script “CreateStatisticReport”
Nel pannello superiore, vicino al pulsante con lo scarafaggio, nell'elenco a discesa, seleziona "makeStatisticReport"

Ora è semplice pannello superiore ha due pulsanti "super" comprensibili a qualsiasi programmatore.

Lancio programmato

Segui i passaggi nelle immagini

Sfumature

Fai in modo che lo script funzioni con un documento ogni volta
Eseguilo immediatamente, non per il debug. Dovrebbe essere creato un documento nella cartella “Statistiche” e riceverai delle email, una delle quali conterrà l'identificativo del documento creato
Assegnalo a una variabile situata nello script Settings.gs.
obj.mainStatisticDocID
Ora lo script aggiornerà questo particolare documento e non ne creerà uno nuovo ogni volta. Se questo parametro non viene inserita, quindi all'avvio lo script cerca di trovare un documento con un identificatore inesistente, naturalmente non lo trova, lancia un'eccezione (nel debug potrebbe esserci un arresto a questo punto dell'esecuzione), ma questa eccezione viene catturato e viene creato un nuovo documento.
Registrazione
Utilizzo metodo successivo
Logger.log("TESTO!");
Per visualizzare l'output selezionare la seguente voce di menu

C'è bisogno di aiuto

L'editor del browser è una cosa comoda, ma se lo script è più voluminoso, non sarà molto comodo lavorarci.
Il collegamento riportato di seguito descrive come caricare e scaricare il progetto.
sviluppatori.google.com/apps-script/import-export

Ho avuto l'idea di scrivere uno script che ricevesse l'identificatore del progetto come input e lo caricasse su disco locale V file separati. Questi file potrebbero quindi essere sottoposti a refactoring umano e, alla fine, ricaricati nuovamente tramite questo script.

Tutto sembra essere descritto, ma qualcosa non ha funzionato per me).

Forse qualcuno lo ha già fatto o c'è link utili? Sarò grato.

Collegamenti

Capitale da questo punto puoi iniziare a cercare risposte a domande sugli script di Google Apps
sviluppatori.google.com/apps-script

PS
Non ho mai lavorato con servizi simili e ho una conoscenza superficiale di JavaScript, sarò felice di ricevere commenti costruttivi.

Google Apps Script è un linguaggio per automatizzare il lavoro con applicazioni online, apparso nel 2009. La sua base è il classico JavaScript, arricchito con estensioni con cui lavorare Servizi Google. Dopo aver letto questo articolo, padroneggerai le basi dell'uso di questo linguaggio, imparerai un paio di tecniche per manipolare posta e documenti e avrai anche un'idea della vasta gamma Funzionalità di Google Script dell'app.

Nozioni di base sull'uso

È molto semplice iniziare a scrivere script di Google Apps. Il primo passo è aprire l'editor di script in qualsiasi applicazione con la quale automatizzeremo l'interazione. IN documenti Google si trova nel menu "Strumenti -> Script Editor". Successivamente, è necessario selezionare il progetto all'interno del quale verrà posizionato lo script (vedi Fig. 1). Nella finestra che si apre, scrivi il codice:

Funzione FirstExampleFunc() ( Browser.msgBox("Questo è JS!"); )

La funzione dichiarata può essere avviata da “Strumenti -> Gestione Script” o eseguita appositamente pulsante separato. Per fare ciò, devi scrivere un'altra funzione:

Funzione menu() ( var ss = SpreadsheetApp.getActiveSpreadsheet(); var items = [ (nome: "La mia unica funzione", functionName: "FirstExampleFunc"), ss.addMenu("Le mie funzioni", voci); )

Ora nel nostro menu c'è una voce chiamata EsempioFunc, quando si fa clic su di essa si apre un sottomenu di una riga "La mia unica funzione".

Le funzioni dichiarate possono essere utilizzate nelle formule immesse all'interno delle celle del foglio di calcolo (vedere Fig. 3). Passiamo ora ad esempi più pratici.



AVVERTIMENTO

Prima di eseguire lo script, non dimenticare di fare copia di backup Informazioni importanti. Le azioni eseguite da GS non possono essere annullate premendo .

Lavorare con Google Documenti

Quando si presenta il compito di automatizzare il lavoro con i documenti d'ufficio, la prima cosa che viene in mente è VBA, la sola menzione del quale ha su molti un effetto antiestatico totale, evocando ricordi dolorosi del passato scolastico e universitario. Google Script è decisamente più comodo e più facile da capire. Soprattutto per gli sviluppatori web, perché questo è JS nativo, familiare e amato! Diamo un'occhiata ad un paio di script di esempio per Google Docs. Il seguente codice riempie la cella in alto a sinistra del primo foglio della tabella attiva:

Var ss = SpreadsheetApp.getActiveSpreadsheet(); var foglio = ss.getSheets(); sheet.getRange("A1").setValue("Contenuto cella");

E questo codice crea una copia del documento di testo e la inserisce in una posizione specifica:

Var source = DocsList.getFileById("SOURCE_ID"); var newFile = source.makeCopy("nuovo nome file"); var targetFolder = DocsList.getFolderById("ID della cartella in cui verrà inserito il file appena creato"); newFile.addToFolder(cartelladestinazione);

Ed è così che puoi sostituire le righe in un documento di testo:

Var doc = DocumentApp.openById("ID del documento in modifica"); doc.editAsText().replaceText("vecchio testo", "nuovo testo"); Logger.log(doc.getText())

L'esempio di codice seguente evidenzia certe parole nel testo:

Var doc = DocumentApp.openById("id documento"); var textToHighlight = "testo da evidenziare"; var highlightStyle = (); highlightStyle = "#FF0000"; var paras = doc.getParagraphs(); var textLocation = (); per (i=0; i

AVVERTIMENTO

Tieni presente che Gmail non solo protegge dallo spam in entrata, ma limita anche lo spam in uscita. Più di 500 lettere al giorno da utilizzando Google Apps Script non funzionerà.

Lavorare con Google Traduttore

Puoi tradurre utilizzando Google Apps Script stringhe di testo da una lingua all'altra. Esempio:

Var parola = LanguageApp.translate("cuculo", "ru", "es"); Logger.log(parola); // Lo script verrà visualizzato sulla console "cuco" - cuculo in spagnolo

I codici per le lingue possono essere visualizzati nella barra degli indirizzi del servizio Google Translate.

INFORMAZIONI

Se si evidenzia il codice e si preme , quindi tutti i rientri per condizioni, cicli, funzioni dichiarate e tutti gli altri posti in cui dovrebbero essere verranno magicamente posizionati.

Lavorare con Google Drive

Google Apps Script può funzionare con file utente ospitati su Google Drive. Questo script visualizza i nomi di tutti i file utente sulla console:

File Var = DriveApp.getFiles(); while (files.hasNext()) ( var file = files.next(); Logger.log(file.getName()); )

È possibile applicare diverse dozzine di file vari metodi. Ecco qui alcuni di loro:

  • addEditor("user email") - dà all'utente i diritti per modificare il file;
  • getOwner() - scopri il proprietario del file;
  • makeCopy("nome", "percorso") - crea una copia del file;
  • getLastUpdated() - restituisce l'utente che ha apportato l'ultima modifica.

Lavorare con i contatti Google

È possibile sottoporre anche la rubrica trattamento automatizzato. Il codice seguente copia tutti i contatti dal gruppo Editoriale a un foglio di calcolo di Google:

Gruppo var = CONTACTSApp.getContactGroup("Editorial"); var contatti = group.getContacts(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Contatti redazionali"); for (var i in contatti) ( // Salva i dati del contatto nelle celle: nome, cognome, numero di telefono sheet.getRange(i, 1, 1, 1).setValue(contacts[i].getGivenName()); sheet . getRange(i, 2, 1, 1).setValue(contatti[i].getFamilyName()); foglio.getRange(i, 3, 1, 1).setValue(contatti[i].getPhones()); / Ed esiste anche un metodo per ottenere il numero del cercapersone (!) di un foglio di contatti.getRange(i, 4, 1, 1).setValue(contacts[i].getPager());

Lavorare con Google Task

Utilizzando gli script di Google Apps, puoi lavorare con il servizio Google Task: creare nuove attività e analizzare quelle esistenti.

Questo codice crea un nuovo caso nell'elenco:

// Puoi trovare l'ID dell'elenco delle attività all'interno barra degli indirizzi nel servizio Google Task var taskListId="tasklist id"; var newTask = ( titolo: "Butta via i noccioli dei datteri", note: "Non dimenticare i noccioli dei datteri sotto il letto" ); nuovaAttività = Tasks.Tasks.insert(nuovaAttività, taskListId); Logger.log("Attività con ID "%s" creata", newTask.id);

E in questo modo puoi visualizzare un elenco di attività numerate nella console:

// Inserisci tutte le attività dell'elenco in un array var task = Tasks.Tasks.list(taskListId); per (var i = 0; i< tasks.items.length; i++) { var task = tasks.items[i]; Logger.log(i. ". ",%s, task.title, task.id); }

Le attività possono essere spostate da un elenco a un altro utilizzando il metodo move, aggiunte utilizzando il metodo update ed eliminate utilizzando il metodo delete.

Esistono diverse dozzine di metodi per lavorare con le attività. Un elenco completo di questi è disponibile nei riferimenti agli script di Google Apps per Google Task.

Lavorare con il calendario

Puoi anche creare automaticamente eventi nel calendario (e, proprio come nel caso della posta, generare informazioni su di essi dalle righe della tabella). Codice per creare l'evento:

Var timeZone = CalendarApp.getTimeZone(); var description = Utilities.formatString("%s da %s a %s", "titolo evento", dateString_("data di inizio evento", "fuso orario"), dateString_("data di fine evento", "fuso orario") ); CalendarApp.createEventFromDescription(descrizione);

Moduli di scambio di script

Un gadget è un'applicazione contenitore che risiede su una pagina Web ed viene eseguita determinate funzioni. Esempi: un miniblocco nell'angolo di una pagina con previsioni del tempo o calendario. Per inserire Google Script all'interno del gadget, devi selezionare “Pubblica -> Distribuisci come app web” nel menu dell'editor di script.

INFORMAZIONI

E se premi , quindi si attiverà la modalità di completamento automatico, ovvero l'editor completerà il codice per te.

Eventi

È possibile configurare uno script da eseguire dopo un evento specifico. Ad esempio, dopo aver aperto/modificato un foglio di calcolo o inviato i dati del modulo.

Lavorare con i database

A questo scopo esiste un servizio per lavorare con i database. GoogleNuvola SQL. Essenzialmente: il classico MySQL nel cloud. Può interagire con Google Apps Script utilizzando lo standard di connettività del database Java. Ecco un esempio di codice che legge i record da una tabella:

Var conn = Jdbc.getConnection(dbUrl, utente, userPwd); var inizio = nuova data(); var stmt = conn.createStatement(); stmt.setMaxRows(1000); var risultati = stmt.executeQuery("SELECT * FROM voci"); var numCols = risultati.getMetaData().getColumnCount(); while (risultati.next()) ( var rowString = ""; for (var col = 0; col< numCols; col++) { rowString += results.getString(col + 1) + "\t"; } Logger.log(rowString) } results.close(); stmt.close();

Il costo per l'utilizzo del servizio è di $ 88 all'anno per 10 GB spazio libero. Con altre basi Dati di Google Apps Script, sfortunatamente, non può funzionare. Se hai intenzione di scrivere uno script che deve interagire con i dati, non dovresti arrabbiarti immediatamente o esaurire il tuo budget con donazioni per l'acquisto di ATV per i residenti della Silicon Valley. Esistono due modi per uscire da questa situazione:

  • il primo è archiviare i dati sotto forma di tabelle su Google Drive;
  • il secondo è posizionare la base server di terze parti, inserire uno script (php)(hode.js)(python)(ecc.) su di esso che eseguirà una richiesta e restituirà la risposta a Formato JSON o XML e, a sua volta, viene analizzato all'interno di GS.

Applicazioni con cui Google Apps Script può interagire

Penso che non tutti i nostri lettori siano riusciti a provare tutto Servizi online di Google. Per ampliare i tuoi orizzonti e stimolare la tua immaginazione creativa, ti presentiamo breve recensione funzionalità applicative che possono essere automatizzate utilizzando Google Apps Script.

  • Google Mail - client di posta. La cosa più interessante è la possibilità di inviare lettere a persone i cui indirizzi sono sconosciuti. Per fare ciò, è necessario abilitare l'impostazione "Invia email". Utenti di Google+" e inserisci il nome e il cognome del destinatario nel campo "A".
  • Google Calendar - organizzatore. La cosa più comoda è la possibilità di inviare notifiche SMS sugli eventi a numeri di operatori russi.
  • Contatti Google è un'applicazione per la memorizzazione dei contatti. La cosa bella è che se sincronizzi accidentalmente la tua lista dei contatti con un nuovo smartphone e tutti i nomi vengono cancellati, puoi chiedere Backup di Google copia versione precedente, che è conservato per sempre nei suoi archivi.
  • Google Drive - archiviazione nel cloud dati. 15 GB, che contengono anche i dati di tutte le altre applicazioni, sono disponibili gratuitamente.
  • Google Maps- mappe on-line. I residenti della CSI sono fortunati: hanno uno strumento alternativo per costruire percorsi e visualizzare panorami stradali: Yandex.Maps. Per i residenti della maggior parte degli altri territori non esistono alternative. Google Maps è l'unico sistema di mappatura mondiale che ti consente di effettuare ricerche insediamenti, inserendo i nomi nella lingua dello Stato in cui si trovano. Diciamo, non Kotlas, ma Kotlas, non Vagharshapat, ma parecchi.
  • Documenti Google: editor online documenti d'ufficio. Al momento della stesura di questo articolo, questo servizio ha fatto una svolta epocale: è diventato possibile modificare i documenti creati in Microsoft Office. Ciò è avvenuto dopo aver integrato il servizio con le funzionalità dell'applicazione Quickoffice. Per puro divertimento ho provato a modificare una nota esplicativa per un diploma in Google Docs (come esempio di documento con formattazione semplice). Converti docx Ho dovuto aspettare circa un minuto in formato Google e aspetto Il testo era chiaramente diverso dall'originale.
  • Google Forms ti consente di creare moduli per raccogliere vari dati (sondaggi online, pagina di registrazione agli eventi, feedback per il sito, ecc.), collegabili alle tabelle in vari formati(HTML, CVS, TXT, PDF, RSS, XLS, ODF). I dati raccolti vengono archiviati su Google Drive.
  • Google Siti - hosting gratuito(100 MB) con funzionalità estremamente limitate e un proprio markup wiki. HTML, CSS e JS completamente funzionali non sono disponibili.

CRS

Secondo la buona vecchia tradizione, che dura da quasi tre mesi, abbiamo pubblicato diverse fonti su GitHub:

  • autodeletemail.gs: elimina i messaggi che sono trascorsi n giorni dalla loro ricezione;
  • snoozeemails.gs - uno script per inviare nuovamente a te stesso le lettere lette dopo un certo periodo di tempo;
  • sendsmsaboutemails.gs - configura invio di SMS in caso di ricezione di lettere che soddisfano determinati criteri. Prima di utilizzarlo, devi indicare il tuo numero Telefono Google Calendario;
  • savemailtopdfindrive.gs - salva il contenuto della lettera in file su Google Drive;
  • fromcalendartospreadsheet.gs - scrive le informazioni dal calendario in un foglio di calcolo;
  • sendmailsfromspreadsheet.gs - invia lettere a un elenco di indirizzi da un foglio di calcolo;
  • createocsfromspread.gs - genera documenti di testo dai dati del foglio di calcolo.

Servizi Google avanzati

Google dispone di numerose API che gli sviluppatori possono implementare nei programmi scritti in Google Apps Script. Per fare ciò, è necessario abilitare questa funzionalità nell'editor di script (nel menu Risorse, quindi Avanzate Servizi Google). Successivamente è possibile utilizzare le funzionalità dei seguenti servizi:

  • Google AdSense è un servizio per lavorare con la pubblicità contestuale.
  • Google Analytics: analizza il traffico verso siti Web e applicazioni mobili.
  • Google BigQuery: consente di eseguire varie manipolazioni (scrittura, lettura, spostamento, ecc.) su grandi volumi di dati, nonché di analizzarli.
  • Google Fusion Tables è un servizio sperimentale che ti consente di ospitare dati nel cloud, inviarvi query e ricevere risultati di esecuzione in formato JSON e CSV. Da cui, a sua volta, si può formare fogli di calcolo, mappe, grafici e altri tipi rappresentazione visiva dati.
  • Google Domains è un servizio per la registrazione di domini ( nuovo progetto, inaugurato a fine giugno 2014).
  • Google Mirror: API per interagire con Google Glass.
  • Google Prediction è un servizio di analisi dei dati (basato sulla tecnologia apprendimento automatico). Consente di implementare le seguenti funzionalità nelle applicazioni: classificatore di documenti e lettere, calcolo del tasso di abbandono (tasso di abbandono dell'utente), rilevatore di spam, ottimizzatore del routing dei messaggi e molte altre cose interessanti degne di un articolo a parte.
  • Google Task: integrato Servizio Gmail per creare elenchi di cose da fare.
  • Google URL Shortener è il servizio preferito della nostra rivista per abbreviare i collegamenti lunghi.
  • YouTube Analytics è un servizio per analizzare le statistiche delle visualizzazioni di video su YotTube. Notevole per la sua capacità di scoprire le caratteristiche demografiche e geografiche degli utenti che guardano un particolare video. Dopotutto, è interessante pubblicare un'altra copia del video della canzone "Goodbye, Buddy" e analizzare quale sesso, età e luogo di residenza sono i suoi ascoltatori.

Buona giornata, cari lettori, miscredenti, cattivi, sostenitori e altre personalità. Oggi parliamo di Script di Google, o meglio script nelle tabelle in quanto tali.

Penso che molti di voi sappiano come usarlo Eccellere"Mangio o, e alcuni, forse anche.

Quelli che usano il disco Google (Google Drive), probabilmente già utilizzato Tables (Fogli di calcolo) e ho notato che hanno funzionalità leggermente inferiori a Excel, ma è comunque uno strumento potente.

Quindi, c'erano delle macro in Excel (sorta di comandi che semplificano e automatizzano i calcoli), scritto in una lingua famosa VBA (Visual Basic per applicazioni). Nelle tabelle Google Esistono anche delle macro, chiamate script e scritte nel linguaggio Javascript. Li conosceremo oggi.

Ti avverto in anticipo possibile complessità ulteriore esempio, perché non è tanto educativo quanto... Um... Per così dire, il fatto finale che puoi usare e... E sviluppare se questo ti è familiare.

Radunatevi in ​​una palla di cervello... E cominciamo :)

Creare una tabella Google Drive/Script e riempirla di contenuti

Consideriamo questo semplice problema:
Abbiamo due colonne, nella prima scriviamo i nomi dei frutti e nella seconda scriviamo il colore che corrisponde a questo frutto. E vogliamo che quando inserisci un colore nella colonna dei colori, il colore del nome del frutto cambi automaticamente.

Se hai dimenticato come utilizzare i documenti Google, allora sei invitato a leggere quello corrispondente e già menzionato sopra. Se non ne hai affatto bisogno, probabilmente non ha senso leggere oltre. Anche se, ovviamente, chi se ne frega di cosa :)

Quindi, creiamo nuova tabella Google, lo chiamiamo, ad esempio, " Frutta". Beh, per esempio.. Visto che l'esempio riguarda la frutta, allora.. Beh, hai capito :)

Ora aggiungiamo i nostri frutti e colori al primo foglio:

Nota! Per contare i frutti, entra nella cella A1 formula:

Vuoi sapere ed essere in grado di fare di più da solo?

Ti offriamo formazione nelle seguenti aree: computer, programmi, amministrazione, server, reti, creazione di siti Web, SEO e altro ancora. Scopri subito i dettagli!

="frutto("&COUNTA(A2:A)&")"

Ora creiamo una macro. Per fare ciò, vai al menu " Utensili"e seleziona" Gestione della sceneggiatura". Apparirà un menu pop-up in cui facciamo clic sul pulsante " Creare".

Nella finestra che appare, seleziona " Progetto vuoto".

Si aprirà un editor, che a prima vista (e anche sul secondo) può causare stupore.

In realtà, qual è il prossimo passo? E poi iniziamo a scrivere le nostre macro a mano (sì, tutto da solo). Come sarà la nostra macro? È necessario elaborare un diagramma di questo processo (altrimenti questo processo ti richiederà molto tempo).

Abbiamo bisogno:

  1. Ottieni i valori dei colori dalla seconda colonna;
  2. In base a questi valori, imposta i colori per la prima colonna.

Quindi.. Sembra tutto semplice.. Se sai come farlo, ovviamente :)

wCodifica

Passiamo al codice stesso:

Funzione onOpen() ( var foglio = SpreadsheetApp.getActiveSpreadsheet(); var voci = [(nome: "Color",nomefunzione: "MakeMeHappy")]; foglio.addMenu("Scripts", voci); ); function MakeMeHappy())( var sheet = SpreadsheetApp.getActiveSpreadsheet(); var range = sheet.getActiveRange(); var data = range.getValues(); if(range.getColumn() == 2)( for (var i= 0;i< data.length;i++){ range.offset(i,-1,1,1).clearFormat(); range.offset(i,-1,1,1).setHorizontalAlignment("center"); range.offset(i,-1,1,1).setVerticalAlignment("center"); switch (data[i]){ case "зеленый": case "Зеленый": range.offset(i,-1,1,1).setFontColor("#00dd00"); break; case "салатовый": case "Салатовый": range.offset(i,-1,1,1).setBackgroundColor("#87dd47"); break; case "желтый": case "Желтый": range.offset(i,-1,1,1).setBackgroundColor("#ffff00"); break; case "оранжевый": case "Оранжевый": range.offset(i,-1,1,1).setFontColor("#dd7711"); break; case "красный": case "Красный": range.offset(i,-1,1,1).setFontColor("#dd0000"); break; case "фиолетовый": case "Фиолетовый": range.offset(i,-1,1,1).setFontColor("#800080"); break; default: break; } } } };

Ora proverò a spiegartelo. Funzione onOpen aggiunge il menu " Script" al tavolo quando lo si apre. E appare così:

Ora per il codice:

Foglio var = SpreadsheetApp.getActiveSpreadsheet();

Questa riga aggiunge alla variabile foglio identificativo del documento che abbiamo aperto, in modo da poterlo poi utilizzare per accedere al documento.

Voci Var = [(nome: "Paint",functionName: "MakeMeHappy")]);

Questa variabile di array contiene un elenco di nomi di menu e funzioni che vengono eseguite quando si fa clic su questi menu.

Sheet.addMenu("Script", voci);

Questo metodo aggiunge un menu al nostro documento " Script".

Funzione Rendermi felice, infatti, sarà nostro funzione principale, che colora i frutti.
Per prima cosa dichiaro le variabili:

Foglio var = SpreadsheetApp.getActiveSpreadsheet(); var range = foglio.getActiveRange(); dati var = range.getValues();

Di conseguenza, nella variabile foglioè l'identificatore del nostro documento. Nella variabile allineare si trova l'area che abbiamo selezionato (ad esempio, cellule B2:B6), nella variabile dati I valori di queste celle si trovano sotto forma di array.

Se(range.getColumn() == 2)(...)

In questa condizione controlliamo che l'intervallo di celle selezionato corrisponda alla seconda colonna (che contiene i colori dei frutti).

Per (var i=0;i< data.length;i++){...}

In questo ciclo esaminiamo ogni cella dell'intervallo B2:B

Range.offset(i,-1,1,1).clearFormat(); range.offset(i,-1,1,1).setHorizontalAlignment("centro"); range.offset(i,-1,1,1).setVerticalAlignment("centro");

Queste tre proprietà rimuovono la formattazione della cella A[i](Per esempio, A1, A2, A3 ecc., perché siamo all'interno del loop), e centrare anche i valori nella cella verticalmente e orizzontalmente.

Qui va tenuto presente che da allora la nostra gamma corrisponde secondo colonna ( B2: B) e dobbiamo rimuovere la formattazione e il centro Primo colonna, il metodo viene utilizzato per questo compensare(intervallo numero riga, numero colonna, numero di righe, numero di colonne). Ad esempio, il metodo intervallo.offset(0,1,4,3) per la cella B2(quelli. allineare corrisponde B2:B2) significherà che non agiremo sulla cella B2:B2 e per la gamma [ B+ 1][ 2 + 0]:[ IN+ 3][ 2 + (4 -1)] = C2:E5. Per maggiori dettagli, vedere.

Switch (data[i])( case "green": case "Green": range.offset(i,-1,1,1).setFontColor("#00dd00"); break; case "light green": case " Verde chiaro ": range.offset(i,-1,1,1).setBackgroundColor("#87dd47"); break; ... )

Funzione interruttoreè il cosiddetto interruttore. Osserva il valore di una variabile e, in base a ciò che è memorizzato in essa, soddisfa una determinata condizione" caso". Puoi riscriverlo modulo standard se altro. Ma sarà molto scomodo. Per esempio:

Interruttore (c)( caso 1: condizione_1; interruzione; caso 2: condizione_2; interruzione; caso 3: condizione_3; interruzione; predefinito: condizione_4; interruzione; )

Sarà equivalente alla funzione:

Se (c == 1) condizione_1; altrimenti se (c == 2) condizione_2; altrimenti se (c == 3) condizione_3; altrimenti condizione_4;

Perché puoi inserire un colore sia con la lettera maiuscola che con la lettera minuscola, quindi abbiamo bisogno di due condizioni ciascuno, che corrisponda alla voce case "verde": case "Verde": azione; rottura; (L'ho scritto in una struttura a blocchi). Devi tenere presente che dopo ogni azione devi scrivere una funzione rottura; Perché altrimenti soddisferemo tutte le condizioni in ordine e non quella di cui abbiamo bisogno. Condizione predefinito utilizzato quando non esiste una condizione adatta per la nostra variabile.

Range.offset(i,-1,1,1).setFontColor("#00dd00");

Metodi setColoreFont E setBackgroundColor impostare i colori del testo e dello sfondo nel modulo #rrggbb (r-rosso, g-verde, b-blu, gamme di colori) rispettivamente.

Ora controlliamo la funzione. Selezione di un intervallo B2:B9, vai al menu " Script" e seleziona l'opzione " Colore". Vediamo come i nostri frutti hanno acquisito una vita di colore :)

In generale, questo è tutto. Ma non proprio.

Script e macro dei fogli di calcolo Google, componente aggiuntivo

Ma puoi fare una piccola aggiunta in modo da non dover eseguire le funzioni manualmente ogni volta.

Per fare ciò, vai al menu nell'editor di script " Risorse" e seleziona lì " Trigger del progetto corrente". Si aprirà un menu in cui sarà già presente la nostra funzione onLoad. Aggiungere nuova caratteristica (1 ) e impostare il nome della funzione (2 ) e il tipo di attivazione della stessa (3 ). Puoi anche cliccare su " Notifiche" e aggiungi/rimuovi il tuo indirizzo di posta dall'elenco delle notifiche.

Verranno se lo script è stato eseguito con errori.

Il risultato finale dell'azione:

Continuazioni - -ne stiamo preparando tre. Bene, i commenti contengono sicuramente molte cose gustose.

PS Per l'esistenza di questo articolo, un ringraziamento speciale a un amico del progetto e membro del nostro team con il soprannome “barn4k“.

Google Apps Script è un linguaggio per automatizzare il lavoro con applicazioni online, apparso nel 2009. La sua base è il classico JavaScript, arricchito con estensioni per lavorare con i servizi Google. Dopo aver letto questo articolo, imparerai le basi dell'utilizzo di questo linguaggio, imparerai un paio di tecniche per manipolare posta e documenti e avrai anche un'idea delle vaste possibilità di Google Apps Script.

Nozioni di base sull'uso

È molto semplice iniziare a scrivere script di Google Apps. Il primo passo è aprire l'editor di script in qualsiasi applicazione con la quale automatizzeremo l'interazione. In Google Docs si trova nel menu "Strumenti -> Script Editor". Successivamente, è necessario selezionare il progetto all'interno del quale verrà posizionato lo script (vedi Fig. 1). Nella finestra che si apre, scrivi il codice:

Funzione FirstExampleFunc() ( Browser.msgBox("Questo è JS!"); )

La funzione dichiarata può essere avviata da “Strumenti -> Gestione script” oppure è possibile creare un pulsante separato per essa. Per fare ciò, devi scrivere un'altra funzione:

Funzione menu() ( var ss = SpreadsheetApp.getActiveSpreadsheet(); var items = [ (nome: "La mia unica funzione", functionName: "FirstExampleFunc"), ss.addMenu("Le mie funzioni", voci); )

Ora nel nostro menu c'è una voce chiamata EsempioFunc, quando si fa clic su di essa si apre un sottomenu di una riga "La mia unica funzione".

Le funzioni dichiarate possono essere utilizzate nelle formule immesse all'interno delle celle del foglio di calcolo (vedere Fig. 3). Passiamo ora ad esempi più pratici.

AVVERTIMENTO

Prima di eseguire lo script, non dimenticare di eseguire il backup delle informazioni importanti. Le azioni eseguite da GS non possono essere annullate premendo .

Lavorare con Google Documenti

Quando si presenta il compito di automatizzare il lavoro con i documenti d'ufficio, la prima cosa che viene in mente è VBA, la sola menzione del quale ha su molti un effetto antiestatico totale, evocando ricordi dolorosi del passato scolastico e universitario. Google Script è decisamente più comodo e più facile da capire. Soprattutto per gli sviluppatori web, perché questo è JS nativo, familiare e amato! Diamo un'occhiata ad un paio di script di esempio per Google Docs. Il seguente codice riempie la cella in alto a sinistra del primo foglio della tabella attiva:

Var ss = SpreadsheetApp.getActiveSpreadsheet(); var foglio = ss.getSheets(); sheet.getRange("A1").setValue("Contenuto cella");

E questo codice crea una copia del documento di testo e la inserisce in una posizione specifica:

Var source = DocsList.getFileById("SOURCE_ID"); var newFile = source.makeCopy("nuovo nome file"); var targetFolder = DocsList.getFolderById("ID della cartella in cui verrà inserito il file appena creato"); newFile.addToFolder(cartelladestinazione);

Ed è così che puoi sostituire le righe in un documento di testo:

Var doc = DocumentApp.openById("ID del documento in modifica"); doc.editAsText().replaceText("vecchio testo", "nuovo testo"); Logger.log(doc.getText())

L'esempio di codice seguente evidenzia parole specifiche nel testo:

Var doc = DocumentApp.openById("id documento"); var textToHighlight = "testo da evidenziare"; var highlightStyle = (); highlightStyle = "#FF0000"; var paras = doc.getParagraphs(); var textLocation = (); per (i=0; i

Dettagli:

  • Riferimenti agli script di Google Apps per il documento Google
  • Riferimenti agli script di Google Apps per il foglio di calcolo Google

INFORMAZIONI

Se stai scrivendo uno script che include funzioni di ricerca/sostituzione del testo, ricorda che GS supporta le espressioni regolari.

Lavorare con la posta

La lettera viene inviata in una breve riga: MailApp.sendEmail(" [e-mail protetta]", "oggetto della lettera", "testo della lettera") Se aggiungi un po' più di codice, puoi organizzare un invio a un elenco di indirizzi da un foglio di calcolo (cerca la fonte nell'applicazione):

Var foglio = SpreadsheetApp.getActiveSheet(); var numRows = foglio.getLastRow(); var dataRange = sheet.getRange(1, 1, numRows, 2) var data = dataRange.getValues(); per (var i = 0; i< data.length; ++i) { var row = data[i]; var name = row; var email = row; var subject = "Тема письма"; var message = "Здравствуйте, " + name + "!"; MailApp.sendEmail(email, subject, message); }

Oltre all'invio di posta, utilizzando GS è possibile eseguire l'elaborazione automatizzata del contenuto della casella di posta. Un esempio è eliminare tutte le lettere del destinatario con cui sei offeso:

Discussioni Var = GmailApp.search(" [e-mail protetta]"); for(var i = 0; i< threads.length; i++) { var messages = threads[i].getMessages(); for(var j = 0; j < messages.length; j++) { messages[j].moveToTrash(); } }

AVVERTIMENTO

Tieni presente che Gmail non solo protegge dallo spam in entrata, ma limita anche lo spam in uscita. Più di 500 email al giorno utilizzando Google Apps Script non funzioneranno.

Lavorare con Google Traduttore

Utilizzando Google Apps Script, puoi tradurre stringhe di testo da una lingua all'altra. Esempio:

Var parola = LanguageApp.translate("cuculo", "ru", "es"); Logger.log(parola); // Lo script verrà visualizzato sulla console "cuco" - cuculo in spagnolo

I codici per le lingue possono essere visualizzati nella barra degli indirizzi del servizio Google Translate.

INFORMAZIONI

Se si evidenzia il codice e si preme , quindi tutti i rientri per condizioni, cicli, funzioni dichiarate e tutti gli altri posti in cui dovrebbero essere verranno magicamente posizionati.

Lavorare con Google Drive

Google Apps Script può funzionare con file utente ospitati su Google Drive. Questo script visualizza i nomi di tutti i file utente sulla console:

File Var = DriveApp.getFiles(); while (files.hasNext()) ( var file = files.next(); Logger.log(file.getName()); )

Ai file è possibile applicare diverse dozzine di metodi diversi. Ecco qui alcuni di loro:

  • addEditor("user email") - dà all'utente i diritti per modificare il file;
  • getOwner() - scopri il proprietario del file;
  • makeCopy("nome", "percorso") - crea una copia del file;
  • getLastUpdated() - Restituisce l'utente che ha apportato l'ultima modifica.

Lavorare con i contatti Google

La rubrica potrà essere oggetto di trattamento anche automatizzato. Il codice seguente copia tutti i contatti dal gruppo Editoriale a un foglio di calcolo di Google:

Gruppo var = CONTACTSApp.getContactGroup("Editorial"); var contatti = group.getContacts(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Contatti redazionali"); for (var i in contatti) ( // Salva i dati del contatto nelle celle: nome, cognome, numero di telefono sheet.getRange(i, 1, 1, 1).setValue(contacts[i].getGivenName()); sheet . getRange(i, 2, 1, 1).setValue(contatti[i].getFamilyName()); foglio.getRange(i, 3, 1, 1).setValue(contatti[i].getPhones()); / Ed esiste anche un metodo per ottenere il numero del cercapersone (!) di un foglio di contatti.getRange(i, 4, 1, 1).setValue(contacts[i].getPager());

Lavorare con Google Task

Utilizzando gli script di Google Apps, puoi lavorare con il servizio Google Task: creare nuove attività e analizzare quelle esistenti.

Questo codice crea un nuovo caso nell'elenco:

// Puoi trovare l'ID dell'elenco delle attività nella barra degli indirizzi nel servizio Google Task var taskListId="tasklist id,"; var newTask = ( titolo: "Butta via i noccioli dei datteri", note: "Non dimenticare i noccioli dei datteri sotto il letto" ); nuovaAttività = Tasks.Tasks.insert(nuovaAttività, taskListId); Logger.log("Attività con ID "%s" creata", newTask.id);

E in questo modo puoi visualizzare un elenco di attività numerate nella console:

// Inserisci tutte le attività dell'elenco in un array var task = Tasks.Tasks.list(taskListId); per (var i = 0; i< tasks.items.length; i++) { var task = tasks.items[i]; Logger.log(i. ". ",%s, task.title, task.id); }

Le attività possono essere spostate da un elenco a un altro utilizzando il metodo move, aggiunte utilizzando il metodo update ed eliminate utilizzando il metodo delete.

Lavorare con il calendario

Puoi anche creare automaticamente eventi nel calendario (e, proprio come nel caso della posta, generare informazioni su di essi dalle righe della tabella). Codice per creare l'evento:

Var timeZone = CalendarApp.getTimeZone(); var description = Utilities.formatString("%s da %s a %s", "titolo evento", dateString_("data di inizio evento", "fuso orario"), dateString_("data di fine evento", "fuso orario") ); CalendarApp.createEventFromDescription(descrizione);

Moduli di scambio di script

Un gadget è un'applicazione contenitore che viene inserita in una pagina Web ed esegue determinate funzioni. Esempi: un miniblocco nell'angolo di una pagina con previsioni del tempo o calendario. Per inserire Google Script all'interno del gadget, devi selezionare “Pubblica -> Distribuisci come app web” nel menu dell'editor di script.

INFORMAZIONI

E se premi , quindi si attiverà la modalità di completamento automatico, ovvero l'editor completerà il codice per te.

Eventi

È possibile configurare uno script da eseguire dopo un evento specifico. Ad esempio, dopo aver aperto/modificato un foglio di calcolo o inviato i dati del modulo.

Lavorare con i database

A questo scopo esiste un servizio per lavorare con i database Google Cloud SQL. Essenzialmente: il classico MySQL nel cloud. Può interagire con Google Apps Script utilizzando lo standard di connettività del database Java. Ecco un esempio di codice che legge i record da una tabella:

Var conn = Jdbc.getConnection(dbUrl, utente, userPwd); var inizio = nuova data(); var stmt = conn.createStatement(); stmt.setMaxRows(1000); var risultati = stmt.executeQuery("SELECT * FROM voci"); var numCols = risultati.getMetaData().getColumnCount(); while (risultati.next()) ( var rowString = ""; for (var col = 0; col< numCols; col++) { rowString += results.getString(col + 1) + "\t"; } Logger.log(rowString) } results.close(); stmt.close();

Il costo per l'utilizzo del servizio è di $ 88 all'anno per 10 GB di spazio gratuito. Sfortunatamente, Google Apps Script non può funzionare con altri database. Se hai intenzione di scrivere uno script che deve interagire con i dati, non dovresti arrabbiarti immediatamente o esaurire il tuo budget con donazioni per l'acquisto di ATV per i residenti della Silicon Valley. Esistono due modi per uscire da questa situazione:

  • il primo è archiviare i dati sotto forma di tabelle su Google Drive;
  • il secondo è posizionare il database su un server di terze parti, su di esso posizionare (php)(hode.js)(python)(ecc.) uno script che gli farà una richiesta e restituirà una risposta in formato JSON o XML e, a sua volta, essere analizzato all'interno di GS.

Applicazioni con cui Google Apps Script può interagire

Penso che non tutti i nostri lettori abbiano avuto il tempo di provare tutti i servizi online di Google. Per ampliare i tuoi orizzonti e stimolare la tua immaginazione creativa, ecco una breve panoramica delle capacità delle applicazioni il cui lavoro può essere automatizzato utilizzando Google Apps Script.

  • Google Mail è un client di posta elettronica. La cosa più interessante è la possibilità di inviare lettere a persone i cui indirizzi sono sconosciuti. Per fare ciò, devi abilitare l'impostazione "Invia email agli utenti Google+" e inserire il nome e il cognome del destinatario nel campo "A".
  • Google Calendar - organizzatore. La cosa più comoda è la possibilità di inviare notifiche SMS sugli eventi a numeri di operatori russi.
  • Contatti Google è un'applicazione per la memorizzazione dei contatti. La cosa bella è che se sincronizzi per errore la tua lista dei contatti con un nuovo smartphone e tutti i nomi vengono cancellati, puoi chiedere a Google una copia di backup della versione precedente, che verrà salvata per sempre nei suoi archivi.
  • Google Drive è un archivio di dati cloud. 15 GB, che contengono anche i dati di tutte le altre applicazioni, sono disponibili gratuitamente.
  • Google Maps: mappe online. I residenti della CSI sono fortunati: hanno uno strumento alternativo per costruire percorsi e visualizzare panorami stradali: Yandex.Maps. Per i residenti della maggior parte degli altri territori non esistono alternative. Google Maps è l'unico sistema cartografico mondiale che permette di cercare luoghi inserendo i nomi nella lingua del Paese in cui si trovano. Diciamo, non Kotlas, ma Kotlas, non Vagharshapat, ma parecchi.
  • Google Docs è un editor online per documenti d'ufficio. Al momento della stesura di questo articolo, questo servizio ha fatto una svolta epocale: è diventato possibile modificare i documenti creati in Microsoft Office. Ciò è avvenuto dopo aver integrato il servizio con le funzionalità dell'applicazione Quickoffice. Per puro divertimento ho provato a modificare una nota esplicativa per un diploma in Google Docs (come esempio di documento con formattazione semplice). Ci è voluto circa un minuto per convertire il docx nel formato Google e l'aspetto del testo era chiaramente diverso dall'originale.
  • Google Forms consente di creare moduli per la raccolta di vari dati (sondaggio online, pagina di registrazione all'evento, feedback sul sito Web, ecc.), collegabili a tabelle in vari formati (HTML, CVS, TXT, PDF, RSS, XLS, ODF) . I dati raccolti vengono archiviati su Google Drive.
  • Google Sites: hosting gratuito (100 MB) con funzionalità estremamente limitate e un proprio markup wiki. HTML, CSS e JS completamente funzionali non sono disponibili.

CRS

Secondo la buona vecchia tradizione, che dura da quasi tre mesi, abbiamo pubblicato diverse fonti su GitHub:

  • autodeletemail.gs: elimina le email che sono trascorse n giorni dalla loro ricezione;
  • snoozeemails.gs - uno script per inviare nuovamente a te stesso le lettere lette dopo un certo periodo di tempo;
  • sendsmsaboutemails.gs - configura l'invio di SMS in caso di ricezione di lettere che soddisfano determinati criteri. Prima di utilizzarlo, devi fornire il tuo numero di telefono di Google Calendar;
  • savemailtopdfindrive.gs - salva il contenuto della lettera in file su Google Drive;
  • fromcalendartospreadsheet.gs - scrive le informazioni dal calendario in un foglio di calcolo;
  • sendmailsfromspreadsheet.gs - invia lettere a un elenco di indirizzi da un foglio di calcolo;
  • createocsfromspread.gs: genera documenti di testo dai dati del foglio di calcolo.

Servizi Google avanzati

Google dispone di numerose API che gli sviluppatori possono implementare nei programmi scritti in Google Apps Script. Per fare ciò, devi abilitare questa funzione nell'editor di script (nel menu Risorse, quindi Servizi avanzati di Google). Successivamente è possibile utilizzare le funzionalità dei seguenti servizi:

  • Google AdSense è un servizio per lavorare con la pubblicità contestuale.
  • Google Analytics: analizza il traffico verso siti Web e applicazioni mobili.
  • Google BigQuery: consente di eseguire varie manipolazioni (scrittura, lettura, spostamento, ecc.) su grandi volumi di dati, nonché di analizzarli.
  • Google Fusion Tables è un servizio sperimentale che ti consente di ospitare dati nel cloud, inviarvi query e ricevere risultati di esecuzione in formato JSON e CSV. Da cui, a sua volta, è possibile creare fogli di calcolo, mappe, grafici e altri tipi di rappresentazione visiva dei dati.
  • Google Domains è un servizio per la registrazione di domini (un nuovo progetto, aperto a fine giugno 2014).
  • Google Mirror: API per interagire con Google Glass.
  • Google Prediction è un servizio di analisi dei dati (basato sulla tecnologia di machine learning). Consente di implementare le seguenti funzionalità nelle applicazioni: classificatore di documenti e lettere, calcolo del tasso di abbandono (tasso di abbandono dell'utente), rilevatore di spam, ottimizzatore del routing dei messaggi e molte altre cose interessanti degne di un articolo a parte.
  • Google Tasks è un servizio integrato in Gmail per la creazione di elenchi di cose da fare.
  • Google URL Shortener è il servizio preferito della nostra rivista per abbreviare i collegamenti lunghi.
  • YouTube Analytics è un servizio per analizzare le statistiche delle visualizzazioni di video su YotTube. Notevole per la sua capacità di scoprire le caratteristiche demografiche e geografiche degli utenti che guardano un particolare video. Dopotutto, è interessante pubblicare un'altra copia del video della canzone "Goodbye, Buddy" e analizzare quale sesso, età e luogo di residenza sono i suoi ascoltatori.

Negli anni '90 ho iniziato a padroneggiare la programmazione e le mie prime applicazioni "commerciali" sono state scritte in VBA sotto MS Excel. Ricordo ancora quanto fosse comodo lavorare, avere un'interfaccia già pronta, funzioni per la manipolazione dei dati e celle indirizzabili... Questo, in linea di principio, un modo normale per imparare a programmare, ora presenta diversi svantaggi. In primo luogo, non è bene associarsi a un ambiente proprietario per lo sviluppo e l'esecuzione del codice fin dalle prime applicazioni e, in secondo luogo, chi ne ha bisogno adesso? Visual Basic?. JavaScript e GoogleDoc sono una questione diversa. Sì, e possibilità, data l '"interfaccia web" dell'ambiente di esecuzione e API aperte, decisamente di più.
Per aiutare chi è interessato a programmare “per celle”, offro qui una semplice “lezione” sulla creazione di script per Google Spreadsheet.


Crea una sceneggiatura

Spero che tu lo abbia già fatto account Google. Accedi al tuo Google Drive, creane uno nuovo Documento Google Foglio di calcolo. Selezioniamo “Strumenti” -> “Script Editor” dal menu del nostro nuovo documento e otteniamo una finestra in cui puoi effettivamente iniziare a programmare.
Il linguaggio di codifica è JavaScript e il modello con cui puoi lavorare include fogli, celle, intervalli e finestre I/O per l'interazione dell'utente.

Scrivere codice

Function myFunction() ( var ss = SpreadsheetApp.getActiveSpreadsheet () ; var sheet = ss.getSheets () [ 0 ] ; var first = Browser.inputBox ( "Primo valore" ); sheet.getRange ( "A1") . setValue ( "Primo valore:" ); sheet.getRange ("B1") .setValue (primo) ; var next = Browser.inputBox ("Valore successivo" ); sheet.getRange ("A2") .setValue ("Valore successivo:" ) ; foglio.getRange("B2") .setValue(successivo) ; var risultato = foglio.getRange("B1") .getValue() + foglio.getRange("B2") .getValue() ) ; ("Risultato:" ); sheet.getRange ("B3") .setValue (risultato) ; Browser.msgBox ("Il riepilogo è: " + risultato) ;
Qui tutto è abbastanza semplice: l'oggetto SpreadshettApp ci fornisce un'istanza del documento da cui prendiamo il primo foglio. L'oggetto Browser ci consente di richiedere dati al client e dirgli qualcosa finestre di dialogo. Per leggere/scrivere i dati della cella, li otteniamo dal foglio utilizzando il metodo getRange e quindi utilizziamo i metodi getValue/setValue.

Chiamando la nostra funzione

Esistono diversi modi per chiamare il nostro script da Spreadshett. Non consideriamo inutilizzabile l'opzione richiamata dal menù "Strumenti" -> "Gestione Script".
L'opzione classica è iniziare con un pulsante, fai così: inserisci un'immagine nel foglio tramite “Inserisci” -> “Disegni” e poi nel menu Immagine (mostrato quando si fa clic su di esso fare clic con il tasto destro) selezionare "Assegna script". Nel campo di input visualizzato, inserisci il nome della funzione.
Puoi anche aggiungere il tuo elemento al menu del documento e farlo a livello di codice. Aggiungiamo una riga nel nostro script:

Ss.addMenu("Test", [ (nome: "Test", nomefunzione: "miafunzione")]) ;
e lo capiamo.

I migliori articoli sull'argomento