Estensione di Documenti Google

Google Apps Script ti consente di creare e modificare in modo programmatico i documenti Google, nonché personalizzare l'interfaccia utente con nuovi menu, finestre di dialogo e barre laterali.

Nozioni di base

Apps Script può interagire con Documenti Google in due modi ampi: qualsiasi script può creare o modificare un documento se l'utente dello script dispone delle autorizzazioni appropriate per del documento e uno script può anche bound a un documento, che fornisce le capacità speciali dello script di alterare l'interfaccia utente o di rispondere quando documento è aperto. Per creare uno script associato a un container da Documenti Google, Fai clic su Estensioni > Apps Script.

In entrambi i casi, è semplice interagire con un documento Google utilizzando Document Service, come nell'esempio seguente come dimostra.

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

Lo script riportato sopra crea un nuovo documento nel Google Drive dell'utente, quindi inserisce un paragrafo che contiene lo stesso testo del nome del documento, stili che come intestazione e aggiunge una tabella basata sui valori in un un array bidimensionale. Lo script potrebbe altresì facilmente apportare queste modifiche a un documento esistente sostituendo la chiamata a DocumentApp.create() con DocumentApp.openById() o openByUrl(). Per gli script creati all'interno di un documento (legato a container), utilizza DocumentApp.getActiveDocument()

Struttura di un documento

Dal punto di vista di Apps Script, un documento Google è strutturato in modo molto simile a un file HTML un documento Google, cioè un documento Google è composto da elementi (come un Paragraph oppure Table) che spesso contengono altri elementi. La maggior parte degli script che modificano un documento Google inizia con una chiamata a getBody(), perché Body è un elemento principale che contiene tutti gli altri elementi tranne HeaderSection, FooterSection e qualsiasi Footnotes.

Esistono però delle regole su quali tipi di elementi possono contenere altri tipi. Inoltre, il servizio documenti in Apps Script può inserire solo alcuni tipi di elementi. La struttura ad albero seguente mostra quali elementi possono essere contenuti da una determinata tipo di elemento.

Puoi inserire gli elementi mostrati in grassetto; gli elementi non in grassetto possono essere manipolato in sede.

Sostituzione del testo in corso...

Apps Script viene spesso utilizzato per sostituire il testo in Documenti Google. Immaginiamo un un foglio di lavoro pieno di informazioni sul cliente e vuoi generare un Documenti Google per ciascun cliente. (Questo tipo di operazione viene spesso chiamata merge.)

Esistono molti modi per sostituire il testo, ma il più semplice è replaceText() mostrato nell'esempio di seguito. replaceText supporta la maggior parte delle caratteristiche espressioni regolari di JavaScript. La prima funzione riportata di seguito aggiunge diverse righe di testo segnaposto a un documento Google; nel mondo reale, è più probabile che digitino i segnaposto nel documento. La la seconda funzione sostituisce i segnaposto con le proprietà definite nella client oggetto.

Tieni presente che entrambe le funzioni utilizzano getActiveDocument() , che si applica solo agli script creati all'interno di un documento Google; in un script autonomo, utilizza DocumentApp.create(), openById(), o openByUrl() .

Aggiungi alcuni segnaposto

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

Sostituisci i segnaposto

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument()
      .getBody();
  var client = {
    name: 'Joe Script-Guru',
    address: '100 Script Rd',
    city: 'Scriptville',
    state: 'GA',
    zip: 94043
  };

  body.replaceText('{name}', client.name);
  body.replaceText('{address}', client.address);
  body.replaceText('{city}', client.city);
  body.replaceText('{state}', client.state);
  body.replaceText('{zip}', client.zip);
}

Menu e interfacce utente personalizzati

Puoi personalizzare Documenti Google aggiungendo menu, finestre di dialogo e barre laterali. Tieni presente, tuttavia, che uno script può interagire con l'interfaccia utente solo corrente dell'istanza di un documento aperto e solo se lo script è bound al documento.

Scopri come aggiungere menu personalizzati e finestre di dialogo con i tuoi documenti Google. Per saperne di più sulla creazione di interfacce personalizzate per una finestra di dialogo o una barra laterale, consulta la guida a HTML Service. Se prevedi di pubblicare la tua interfaccia personalizzata in una componente aggiuntivo, segui le guida di stile per garantire la coerenza con stile e layout dell'editor di Documenti Google.

Componenti aggiuntivi per Documenti Google

I componenti aggiuntivi vengono eseguiti all'interno di Documenti Google e possono essere installati dallo store dei componenti aggiuntivi di Documenti Google. Se hai sviluppato uno script per Documenti Google e vuoi condividerlo con il mondo, Apps Script ti consente pubblicare il tuo script come per consentire agli altri utenti di installarlo dallo store dei componenti aggiuntivi.

Per scoprire come creare un componente aggiuntivo per Documenti Google, vedi: guida rapida per la creazione di componenti aggiuntivi di Documenti.

Trigger

Script legati a un account Google Il documento può utilizzare un semplice attivatore per rispondere all'onOpen evento del documento, che si verifica ogni volta che un utente con accesso in modifica al documento lo apre in Documenti Google.

Per configurare il trigger, è sufficiente scrivere una funzione denominata onOpen(). Ad esempio, di questo attivatore, vedi Menu personalizzati in Google Workspace. Sebbene il semplice trigger sia utile per aggiungere menu, non può utilizzare nessuna app Servizi di script che richiedono l'autorizzazione.