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

评论

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

#1 楼

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

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

现阶段存在一些限制(例如,关于图表的大小)并且该图表必须先存在于电子表格中,然后才能插入,但这是正确的方向...


要插入电子表格或表格,请使用从Google添加表格通过从“表格”复制粘贴到“文档”并选择链接的选项来选择表格。

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

评论


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

–艾里克·汉弗莱(Erik Humphrey)
16-10-5在17:47

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

–珍妮·布妮(Jean-Rene Bouvier)
16-10-13在9:36

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

–user135384
17-6-27在15:18



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

–珍妮·布妮(Jean-Rene Bouvier)
17年9月9日在17:15

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

– ADTC
17年9月17日在18:11

#2 楼

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

当然,我绝对希望证明是错误的!

评论


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

–ale
2010年7月7日在13:33

请参阅下面的答案,现在有了一个新选项,该选项使它更加友好并提供了动态更新。

–珍妮·布妮(Jean-Rene Bouvier)
16年5月20日在8:44

#3 楼

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

脚本应绑定到文档(即使用文档菜单中的“工具”>“脚本编辑器”创建)。在脚本中指定了电子表格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());
}


技术说明


除了手动之外,每小时还可以同步数据。只需从“脚本编辑器”的“资源”菜单中添加基于时间的触发器,即可运行updateData函数。
还可以改编该脚本以绑定到源电子表格。这将需要更改文档的打开方式(例如,通过URL),但是其他逻辑是相同的。
脚本的繁琐部分是获取文档中现有表的句柄。这需要将其放在命名范围内。而且,完全替换表格元素比弄乱现有表格的条目更为方便。由于命名范围是不可变的,因此也会将其与包含的表一起删除,然后与新表一起重新创建。


评论


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

–cheshirekow
16年5月6日在15:42

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

–cheshirekow
16年5月6日15:43

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

–user79865
16年5月6日在15:55

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

–未连接
16年7月2日在17:34



#4 楼

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

评论


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

–杜克
18年1月12日在13:06

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

–TC76
19年8月14日在20:01

#5 楼

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

将Google电子表格嵌入到Google网站的页面中


创建新站点或转到现有站点。
创建新页面或单击现有页面上的编辑。
单击“插入”>“驱动器”>“电子表格”
选择电子表格
设置选项
单击保存