Incrustar hoja de cálculo de Google en el documento de Google


82

¿Es posible incrustar una hoja de cálculo de Google en un documento de Google a la Microsoft Excel y Microsoft Word? ¿Qué tal un gráfico de una hoja de cálculo?


1
Puede copiar y pegar un gráfico de sus hojas de cálculo en un documento. Sin embargo, no tuve suerte al intentar incrustar la hoja de cálculo. He enviado esto como una solicitud de función en Google Group para documentos.
mikeschuld

Respuestas:


24

A partir de hoy (20/05/2016), Google está comenzando a implementar la capacidad de incrustar un gráfico de una hoja de cálculo de Google en un documento de Google. En este punto, dos de mis 3 cuentas de Google hacen que la opción esté disponible en el Insertmenú, con un nuevo Insert→Chartsubmenú debajo del Insert→Drawing…elemento.

Cuando inserta dichos gráficos, permanecen vinculados a la hoja de cálculo original. Si todo lo que desea son datos tabulares, hay un tipo de gráfico de tabla que puede usar para presentar sus datos como una tabla simple.

Hay algunas limitaciones en esta etapa (por ejemplo, con respecto al tamaño del gráfico) y el gráfico debe preexistir en la hoja de cálculo antes de poder insertarlo, pero esto va en la dirección correcta ...


Para insertar una hoja de cálculo o una tabla, use Agregar una tabla de Hojas de cálculo de Google copiando y pegando Hojas de cálculo a Documentos y elija la opción vinculada.

El gráfico no se actualiza en vivo si modifica la hoja de cálculo de origen mientras se abre el documento, sin embargo, el documento detectará cambios y le dará un botón Actualizar encima de la hoja de cálculo incrustada para reflejar los últimos cambios en el origen.


¿Significa esto que si la hoja de cálculo usa una fórmula o ecuación que cambia automáticamente (por ejemplo, en función de una fecha determinada) tampoco se actualizará?
Erik Humphrey

No he probado esto, pero sospecho que debe abrir su hoja de cálculo para actualizar su gráfico y luego aceptar actualizar el gráfico en los documentos que lo integran. Si encuentra lo contrario, háganoslo saber a todos.
Jean-Rene Bouvier

1
A partir de hoy, también se puede incrustar una mesa ; dado que su respuesta es la aceptada, es posible que desee editar en esta nueva función.

1
Gracias por la información re. empotrado directo en mesa. En esta etapa, la función aún no parece funcionar en mi cuenta de Google Apps for Work. Actualizaré mi publicación tan pronto como note que lo hace.
Jean-Rene Bouvier

@Michelle Lo intenté y no parece posible. No veo ningún botón "Actualizar" en una tabla que se copió de un archivo de Hojas de cálculo.
ADTC

32

AFAIK, solo puede copiar y pegar desde la hoja de cálculo al documento de texto. La hoja de cálculo se inserta como una tabla, pero no está vinculada: si cambia algo en la hoja de cálculo, no se reflejará en el documento de texto.

¡Por supuesto, me encantaría que me demuestren que estoy equivocado!


1
Lamentablemente, esa parece mi única opción en este momento.
ale

1
Vea mi respuesta a continuación, ahora hay una nueva opción que lo hace un poco más amigable y proporciona actualizaciones dinámicas.
Jean-Rene Bouvier

11

Aquí hay una solución basada en script que le permite a uno insertar una tabla con el contenido de un rango dado dentro de una hoja de cálculo dada. No intenté encontrar una manera de sincronizar los datos en tiempo real, ya que no parecía práctico dado el gran volumen de datos que tendría que transferirse con cada edición a la hoja de cálculo. En cambio, el script agrega un elemento de menú personalizado "actualizar datos" al documento.

El guión debe estar vinculado al documento (es decir, creado usando Herramientas> Editor de guiones en el menú del documento). La URL de la hoja de cálculo, así como la hoja y el rango a utilizar, se especifican dentro del script. Para incrustar todos los datos en la hoja, reemplace .getRange(rangeName)con .getDataRange().

Cuando la función updateData se ejecuta por primera vez, agrega la tabla al final del documento. En las ejecuciones posteriores, actualiza la tabla en su lugar (es decir, si se agrega más texto después de la tabla, se conservará el orden).

Tenga en cuenta que cortar y pegar la tabla interrumpiría el proceso de actualización (el script agregaría una nueva tabla al final) ya que la copia pegada es un nuevo objeto. En su lugar, corte y pegue el texto alrededor de la 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. También es posible sincronizar los datos cada hora, además de hacerlo manualmente. Simplemente agregue un disparador basado en el tiempo desde el menú Recursos del Editor de scripts, para que ejecute la función updateData.

  2. También se puede adaptar este script para que se vincule a la hoja de cálculo de origen. Esto requeriría cambios en la forma en que se abre el documento (por ejemplo, por URL), pero de lo contrario la lógica es la misma.

  3. La parte engorrosa del script es obtener el identificador de la tabla existente en el documento. Esto requiere colocarlo dentro de un rango con nombre. Además, es mucho más conveniente reemplazar completamente el elemento de la tabla que meterse con las entradas de una tabla existente. Dado que un rango con nombre es inmutable, también se elimina con la tabla que contiene y luego se vuelve a crear, junto con la nueva tabla.


Funciona genial. ¿Alguna forma de obtener formato (en particular los colores de fondo de la celda)?
Cheshirekow

NOTA: La 'URL de la hoja de cálculo' aparentemente debería contener la URL completa, incluidas las /edit#gid=0cosas al final.
Cheshirekow

No hay forma de importar el formato de otra hoja de cálculo.

Los enlaces tampoco se transfieren, tampoco los colores. ¿Hay alguna forma de modificar este script para incluir todo el formato? Un trabajo muy inteligente para solucionar el problema de cortar y pegar, ¡funcionó de maravilla!
conectado

4

Sí tu puedes. Copie el contenido de una hoja y péguelo en su documento, en la esquina derecha le preguntará si desea vincular a la hoja de cálculo. Si lo hace, después de editar la hoja de cálculo, puede hacer clic en el icono de actualización en sus documentos para incorporar los cambios en su documento.


A principios de 2018, esta es la mejor respuesta para la parte de la pregunta relativa a la inserción de una tabla de Google Sheet en un Google Doc.
Toma el

Y por lo que puedo decir, la razón por la que encontré este hilo es que está limitado a 400 celdas.
Trey

3

Una alternativa es utilizar Google Sites o cualquier otro editor de contenido que permita incrustar contenido de iframes.

Para incrustar hojas de cálculo de Google en una página de Google Sites

  1. Cree un nuevo sitio o vaya a un sitio existente.
  2. Cree una nueva página o haga clic en Editar en una página existente.
  3. Haga clic en Insertar> Unidad> Hoja de cálculo
  4. Selecciona la hoja de cálculo
  5. Establecer las opciones
  6. Haga clic en Guardar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.