Est-il possible d'incorporer une feuille de calcul Google dans un document Google à Microsoft Excel et Microsoft Word? Que diriez-vous d'un tableau à partir d'un tableur?
Est-il possible d'incorporer une feuille de calcul Google dans un document Google à Microsoft Excel et Microsoft Word? Que diriez-vous d'un tableau à partir d'un tableur?
Réponses:
À partir d’aujourd’hui (20/05/2016), Google commence à déployer la possibilité d’intégrer un graphique d’une feuille de calcul Google dans un document Google. À ce stade, deux de mes 3 comptes Google rendent l'option disponible dans le Insert
menu, avec un nouveau Insert→Chart
sous-menu sous l' Insert→Drawing…
élément.
Lorsque vous insérez de tels graphiques, ils restent liés à la feuille de calcul d'origine. Si vous ne souhaitez que des données tabulaires, vous pouvez utiliser un type de graphique sous forme de tableau pour présenter vos données sous forme de tableau simple.
Il existe certaines limitations à ce stade (par exemple en ce qui concerne la taille du graphique) et le graphique doit préexister dans la feuille de calcul avant de pouvoir l'insérer, mais cela va dans la bonne direction…
Pour insérer une feuille de calcul ou un tableau, utilisez la commande Ajouter une table à partir de Google Sheets en effectuant un copier-coller de Feuilles dans Docs et choisissez l'option liée.
Le graphique n'est pas mis à jour en direct si vous modifiez la feuille de calcul source pendant que votre document est ouvert. Toutefois, le document détectera les modifications et vous donnera un bouton Mettre à jour au-dessus de la feuille de calcul incorporée pour refléter les dernières modifications apportées à la source.
Autant que je sache, vous pouvez uniquement copier et coller de la feuille de calcul vers le document texte. La feuille de calcul est insérée sous forme de tableau, mais ils ne sont pas liés: si vous modifiez quelque chose dans la feuille de calcul, cela ne sera pas reflété dans le document texte.
Bien sûr, j'aimerais vraiment avoir tort!
Voici une solution basée sur un script qui permet d’insérer un tableau avec le contenu d’une plage donnée dans une feuille de calcul donnée. Je n'ai pas essayé de trouver un moyen de synchroniser les données en temps réel, car cela ne semblait pas pratique compte tenu du volume potentiellement important de données à transférer à chaque édition dans le tableur. Au lieu de cela, le script ajoute un élément de menu personnalisé "Mettre à jour les données" au document.
Le script doit être lié au document (c.-à-d. Créé à l'aide de Outils> Editeur de script dans le menu du document). L'URL de la feuille de calcul, ainsi que la feuille et la plage à utiliser, sont spécifiés dans le script. Pour incorporer toutes les données sur la feuille, remplacez .getRange(rangeName)
par .getDataRange()
.
Lorsque la fonction updateData est exécutée pour la première fois, elle ajoute la table à la fin du document. Lors des exécutions suivantes, la table est mise à jour (c.-à-d. Si davantage de texte est ajouté après la table, l'ordre sera préservé).
Notez que couper-coller de la table interromprait le processus de mise à jour (le script ajouterait une nouvelle table à la fin) car la copie collée est un nouvel objet. Au lieu de cela, copier-coller le texte autour de la table.
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());
}
Il est également possible de synchroniser les données toutes les heures, en plus de manuellement. Ajoutez simplement un déclencheur temporel à partir du menu Ressources de l'éditeur de script, de sorte qu'il exécute la fonction updateData.
On peut également adapter ce script pour qu'il soit lié à la feuille de calcul source. Cela nécessiterait des changements dans la manière dont le document est ouvert (par exemple, par URL), mais sinon, la logique est la même.
La partie fastidieuse du script consiste à récupérer le handle de la table existante dans le document. Cela nécessite de le placer dans une plage nommée. En outre, il est beaucoup plus pratique de remplacer complètement l'élément de table que de modifier les entrées d'une table existante. Etant donné qu'une plage nommée est immuable, elle est également supprimée avec la table qu'elle contient, puis créée à nouveau avec la nouvelle table.
/edit#gid=0
éléments à la fin.
Oui, vous pouvez. Copiez le contenu d'une feuille et collez-la dans votre document. Dans le coin droit, il vous sera demandé si vous souhaitez créer un lien vers la feuille de calcul. Si vous le faites, après avoir modifié la feuille de calcul, vous pouvez cliquer sur l'icône de mise à jour dans vos documents pour intégrer les modifications à votre document.
Une autre solution consiste à utiliser Google Sites ou tout autre éditeur de contenu permettant l'incorporation de contenu iframes.
Pour intégrer des feuilles de calcul Google dans une page de Google Sites