it-swarm.it

Incorpora il foglio di calcolo di Google nel documento di Google

È possibile incorporare un foglio di calcolo Google in un documento Google à Microsoft Excel e Microsoft Word? Che ne dici di un grafico da un foglio di calcolo?

82
ale

Da oggi (20/05/2016), Google sta iniziando a implementare la possibilità di incorporare un grafico da un foglio di calcolo di Google in un documento di Google. A questo punto, due dei miei 3 account Google rendono disponibile l'opzione nel menu Insert, con un nuovo sottomenu Insert→Chart sotto la voce Insert→Drawing….

Quando si inseriscono tali grafici, questi rimangono collegati al foglio di calcolo originale. Se tutto ciò che desideri sono dati tabulari, esiste un tipo di grafico a tabella che puoi utilizzare per presentare i tuoi dati come una semplice tabella.

Ci sono alcune limitazioni in questa fase (ad es. Riguardo alla dimensione del grafico) e il grafico deve preesistere nel foglio di calcolo prima di poterlo inserire, ma sta andando nella giusta direzione ...


Per inserire un foglio di calcolo o una tabella, usa Aggiungi una tabella da Fogli Google copiando e incollando da Fogli a Documenti e scegli l'opzione collegata.

Il grafico non è non aggiornato dal vivo se modifichi il foglio di calcolo di origine mentre il documento è aperto, tuttavia, il documento rileverà le modifiche e ti darà un Pulsante Aggiorna sopra il foglio di calcolo incorporato per riflettere le ultime modifiche alla fonte.

24

AFAIK, puoi solo copiare e incollare dal foglio di calcolo al documento di testo. Il foglio di calcolo viene inserito come una tabella, ma non sono collegati: se si modifica qualcosa nel foglio di calcolo, non verrà riflesso nel documento di testo.

Certo, mi piacerebbe assolutamente essere smentito!

32
jfoucher

Ecco una soluzione basata su script che consente di inserire una tabella con i contenuti di un determinato intervallo all'interno di un determinato foglio di calcolo. Non ho cercato di trovare un modo per sincronizzare i dati in tempo reale, poiché non sembrava pratico dato il volume potenzialmente grande di dati che avrebbero dovuto essere trasferiti con ogni modifica al foglio di calcolo. Invece, lo script aggiunge una voce di menu personalizzata "aggiorna dati" al documento.

Lo script deve essere associato al documento (ovvero creato utilizzando Strumenti> Editor di script nel menu del documento). L'URL del foglio di calcolo, nonché il foglio e l'intervallo da utilizzare, sono specificati nello script. Per incorporare tutti i dati sul foglio, sostituire .getRange(rangeName) con .getDataRange().

Quando la funzione updateData viene eseguita per la prima volta, aggiunge la tabella alla fine del documento. Alle successive esecuzioni aggiorna la tabella in posizione (ovvero, se viene aggiunto più testo dopo la tabella, l'ordine verrà conservato).

Nota che incollare la tabella interromperebbe il processo di aggiornamento (lo script aggiungerebbe una nuova tabella alla fine) poiché la copia incollata è un nuovo oggetto. Invece, taglia e incolla il testo attorno alla tabella.

function onOpen() {
  DocumentApp.getUi()
             .createMenu('Custom')
             .addItem('Update Data', 'updateData')
             .addToUi();
}

function updateData() {
  var ssUrl = ' spreadsheet url here ';
  var sheetName = 'Sheet2';   // name of sheet to use
  var rangeName = 'A1:C3';    // range of values to include 

  var values = SpreadsheetApp.openByUrl(ssUrl)
                             .getSheetByName(sheetName)
                             .getRange(rangeName)
                             .getValues();
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var ranges = doc.getNamedRanges('embeddedSheet-range');
  if (ranges.length == 0) {
    var table = body.appendTable(values);
  }
  else {
    tableRange = ranges[0];
    table = tableRange.getRange().getRangeElements()[0].getElement();
    var ind = body.getChildIndex(table);
    tableRange.remove();
    body.removeChild(table);
    table = body.insertTable(ind, values);
  }
  var rangeBuilder = doc.newRange();
  rangeBuilder.addElement(table);
  doc.addNamedRange('embeddedSheet-range', rangeBuilder.build());
}

Note tecniche

  1. È anche possibile sincronizzare i dati ogni ora, oltre a manualmente. Basta aggiungere un trigger basato sul tempo dal menu Risorse dell'Editor degli script, in modo che esegua la funzione updateData.

  2. Si può anche adattare questo script per essere associato al foglio di calcolo di origine. Ciò richiederebbe modifiche nel modo in cui il documento viene aperto (ad es. Tramite URL), ma per il resto la logica è la stessa.

  3. La parte ingombrante dello script sta ottenendo l'handle della tabella esistente nel documento. Ciò richiede di posizionarlo all'interno di un intervallo denominato. Inoltre, è molto più conveniente sostituire completamente l'elemento della tabella che pasticciare con le voci di una tabella esistente. Poiché un intervallo denominato non è modificabile, viene rimosso anche con la tabella in esso contenuta e quindi creato di nuovo, insieme alla nuova tabella.

11
user79865

Si, puoi. Copia il contenuto di un foglio e incollalo nel tuo documento, nell'angolo destro ti verrà chiesto se desideri collegarti al foglio di calcolo. In tal caso, dopo aver modificato il foglio di calcolo, puoi fare clic sull'icona di aggiornamento nei tuoi documenti per incorporare le modifiche al tuo documento.

4
Fish Monitor

Un'alternativa è utilizzare Google Sites o qualsiasi altro editor di contenuti che consenta l'incorporamento di contenuti iframe.

Per incorporare fogli di calcolo di Google in una pagina di Google Sites

  1. Crea un nuovo sito o vai a un sito esistente.
  2. Crea una nuova pagina o fai clic su Modifica in una pagina esistente.
  3. Fai clic su Inserisci> Drive> Foglio di calcolo
  4. Seleziona il foglio di calcolo
  5. Imposta le opzioni
  6. Clicca su Salva
3
Rubén