¿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?
¿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?
Respuestas:
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 Insert
menú, con un nuevo Insert→Chart
submenú 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.
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!
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());
}
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.
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.
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.
/edit#gid=0
cosas al final.
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.
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