it-swarm.cn

将Google电子表格嵌入Google文档

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

82
ale

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

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

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


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

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

24
Jean-Rene Bouvier

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

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

32
jfoucher

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

脚本应绑定到文档(即使用文档菜单中的工具>脚本编辑器创建的脚本)。在脚本中指定了电子表格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. 该脚本的繁琐部分是获取文档中现有表的句柄。这需要将其放置在命名范围内。同样,完全替换表格元素比弄乱现有表格的条目更为方便。由于命名范围是不可变的,因此也会将其与包含的表一起删除,然后与新表一起重新创建。

11
user79865

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

4
Fish Monitor

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

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

  1. 创建一个新站点或转到现有站点。
  2. 创建一个新页面或在现有页面上单击“编辑”。
  3. 单击插入>驱动器>电子表格
  4. 选择电子表格
  5. 设定选项
  6. 点击保存
3
Rubén