将Google电子表格嵌入Google文档


82

是否可以将Microsoft Spreadsheet嵌入到Microsoft Excel和Microsoft Word的Google文档中?电子表格中的图表怎么样?


1
您可以将电子表格中的图表复制并粘贴到文档中。但是,尝试嵌入电子表格本身并不幸运。我已将此请求作为功能组提交给Google网上论坛的文档。
mikeschuld'5

Answers:


24

从今天(2016-05-20)起,Google将开始推出将图表从Google电子表格嵌入到Google文档中的功能。此时,我的3个Google帐户中有2个使该选项在Insert菜单中可用,并且Insert→Chart在该Insert→Drawing…项目下方有一个新的子菜单。

当您插入此类图表时,它们仍然链接到原始电子表格。如果只需要表格数据,则可以使用表格图表类型将数据显示为简单表格。

在此阶段存在一些限制(例如,关于图表的大小),并且在插入表格之前必须在电子表格中预先存在该图表,但这是朝着正确的方向前进的……


要插入电子表格或表格,请使用从Google表格添加表格,方法是将表格从表格复制粘贴到文档,然后选择链接的选项。

如果在打开文档时修改源电子表格,则该图表不会实时更新,但是,该文档将检测到更改,并为您提供嵌入式电子表格上方的“ 更新”按钮,以反映源中的最新更改。


这是否意味着如果电子表格使用自动更改的公式或方程式(例如,基于特定日期),它也不会更新?
埃里克·汉弗莱

我尚未对此进行测试,但是我怀疑您必须打开电子表格以刷新图表,然后接受更新嵌入其的文档中的图表。如果您发现其他情况,请告诉我们。
Jean-Rene Bouvier

1
从今天开始,还可以嵌入一张桌子;由于您的答案已被接受,因此您可能需要在此新功能中进行编辑。

1
感谢您提供的信息。直接表嵌入。目前,该功能在我的Google Apps for Work帐户中似乎还无法使用。我会在发现更新后立即对其进行更新。
Jean-Rene Bouvier

@Michelle我尝试过,似乎不可能。从表格文件复制的表上看不到任何“更新”按钮。
ADTC

32

AFAIK,您只能从电子表格复制并粘贴到文本文档。电子表格将作为表​​格插入,但未链接:如果在电子表格中进行了更改,它将不会反映在文本文档中。

当然,我绝对愿意证明自己是错误的!


1
可悲的是,这确实是我目前唯一的选择。
ale

1
请参阅下面的答案,现在有了一个新选项,它使此操作更加友好并提供了动态更新。
Jean-Rene Bouvier

11

这是一个基于脚本的解决方案,允许您在给定电子表格中插入具有给定范围内的内容的表。我没有尝试找到一种实时同步数据的方法,因为考虑到每次编辑到电子表格时都可能需要传输的大量数据,这似乎并不实际。而是,脚本将自定义菜单项“更新数据”添加到文档。

脚本应绑定到文档(即,使用文档菜单中的“工具”>“脚本编辑器”创建)。在脚本中指定了电子表格URL以及要使用的工作表和范围。要将所有数据嵌入到工作表中,请替换.getRange(rangeName).getDataRange()

第一次执行updateData函数时,它将表添加到文档末尾。在随后的运行中,它将在适当的位置更新表格(即,如果在表格之后添加了更多文本,则将保留顺序)。

请注意,剪切粘贴表将中断更新过程(脚本将在末尾添加新表),因为粘贴的副本是新对象。而是将文本剪切粘贴到表格周围。

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

技术说明

  1. 除了手动之外,每小时还可以同步数据。只需从“脚本编辑器”的“资源”菜单中添加基于时间的触发器,即可运行函数updateData。

  2. 也可以改编该脚本以绑定到源电子表格。这将需要更改文档的打开方式(例如,通过URL),但是其他逻辑是相同的。

  3. 该脚本的繁琐部分是获取文档中现有表的句柄。这需要将其放置在命名范围内。而且,完全替换表格元素比弄乱现有表格的条目更为方便。由于命名范围是不可变的,因此也会将其与包含的表一起删除,然后与新表一起重新创建。


效果很好。有什么方法可以格式化(特别是单元格背景色)?
cheshirekow

注意:“电子表格网址”显然应该包含完整的网址,包括/edit#gid=0末尾的内容。
cheshirekow

无法导入其他电子表格的格式。

链接也不会转移,颜色也不会转移。有什么办法可以修改此脚本以包含所有格式?非常聪明地处理剪切粘贴问题,就像一个魅力!
未经检验,

4

是的你可以。复制工作表的内容并将其粘贴到您的文档中,它会在右上角询问您是否要链接到电子表格。如果这样做,在编辑电子表格后,您可以单击文档中的更新图标以将更改合并到文档中。


截至2018年初,这是有关将Google表格插入到Google文档中的部分问题的最佳答案。
dlukes

据我所知,我找到这个线程的原因是它仅限于400个单元。
Trey

3

一种替代方法是使用Google协作平台或任何其他允许嵌入iframe内容的内容编辑器。

将Google电子表格嵌入Google站点页面中

  1. 创建一个新站点或转到现有站点。
  2. 创建一个新页面或在现有页面上单击“编辑”。
  3. 单击插入>驱动器>电子表格
  4. 选择电子表格
  5. 设定选项
  6. 点击保存
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.