ti-enxame.com

Incorporar planilha do Google no documento do Google

É possível incorporar uma planilha do Google em um documento do Google à Microsoft Excel e Microsoft Word? Que tal um gráfico de uma planilha?

82
ale

A partir de hoje (20/05/2016), o Google começa a implementar a capacidade de incorporar um gráfico de uma planilha do Google em um documento do Google. Nesse momento, duas das minhas 3 contas do Google disponibilizam a opção no menu Insert, com um novo submenu Insert→Chart abaixo do item Insert→Drawing….

Quando você insere esses gráficos, eles permanecem vinculados à planilha original. Se tudo o que você deseja são dados tabulares, existe um tipo de gráfico de tabela que você pode usar para apresentar seus dados como uma tabela simples.

Existem algumas limitações nesse estágio (por exemplo, em relação ao tamanho do gráfico) e o gráfico deve preexistir na planilha antes de você poder inseri-lo, mas isso está indo na direção certa…


Para inserir uma planilha ou tabela, use Adicionar uma tabela do Planilhas Google copiando e colando do Planilhas para o Documentos e escolha a opção vinculada.

O gráfico não é atualizado ao vivo se você modificar a planilha de origem enquanto o documento é aberto; no entanto, o documento detectará alterações e fornecerá Botão Atualizar acima da planilha incorporada para refletir as alterações mais recentes na fonte.

24
Jean-Rene Bouvier

AFAIK, você só pode copiar e colar da planilha no documento de texto. A planilha é inserida como uma tabela, mas não está vinculada: se você alterar algo na planilha, ela não será refletida no documento de texto.

Claro, eu adoraria provar que estou errado!

32
jfoucher

Aqui está uma solução baseada em script que permite inserir uma tabela com o conteúdo de um determinado intervalo em uma determinada planilha. Não tentei encontrar uma maneira de sincronizar dados em tempo real, pois isso não parecia prático, dado o volume potencialmente grande de dados que precisariam ser transferidos a cada edição da planilha. Em vez disso, o script adiciona um item de menu personalizado "atualizar dados" ao documento.

O script deve estar vinculado ao documento (ou seja, criado usando Ferramentas> Editor de scripts no menu do documento). O URL da planilha, bem como a planilha e o intervalo a serem usados, são especificados no script. Para incorporar todos os dados na folha, substitua .getRange(rangeName) por .getDataRange().

Quando a função updateData é executada pela primeira vez, ela anexa a tabela no final do documento. Nas execuções subsequentes, ele atualiza a tabela (ou seja, se mais texto for adicionado após a tabela, o pedido será preservado).

Observe que o recorte da tabela interromperia o processo de atualização (o script adicionaria uma nova tabela no final), pois a cópia colada é um novo objeto. Em vez disso, cole o texto em volta da mesa.

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());
}

Notas técnicas

  1. Também é possível sincronizar os dados a cada hora, além de manualmente. Basta adicionar um gatilho baseado em tempo no menu Recursos do Editor de scripts, para que ele execute a função updateData.

  2. Também é possível adaptar esse script para ser vinculado à planilha de origem. Isso exigiria alterações na forma como o documento é aberto (por exemplo, por URL), mas, caso contrário, a lógica é a mesma.

  3. A parte complicada do script é obter o identificador da tabela existente no documento. Isso requer colocá-lo dentro de um intervalo nomeado. Além disso, é muito mais conveniente substituir completamente o elemento da tabela do que mexer com as entradas de uma tabela existente. Como um intervalo nomeado é imutável, ele também é removido com a tabela que contém e, em seguida, criado novamente, junto com a nova tabela.

11
user79865

Sim você pode. Copie o conteúdo de uma planilha e cole-o no seu documento; no canto direito, ele perguntará se você deseja vincular à planilha. Se o fizer, depois de editar a planilha, você pode clicar no ícone de atualização nos seus documentos para incorporar as alterações ao seu documento.

4
Fish Monitor

Uma alternativa é usar o Google Sites ou qualquer outro editor de conteúdo que permita incorporar conteúdo iframes.

Para incorporar planilhas do Google em uma página do Google Sites

  1. Crie um novo site ou acesse um site existente.
  2. Crie uma nova página ou clique em Editar em uma página existente.
  3. Clique em Inserir> Drive> Planilha
  4. Selecione a planilha
  5. Defina as opções
  6. Clique em Salvar
3
Rubén