将Google文档与电子表格

时间:2017-07-10 18:33:51

标签: google-apps-script google-sheets google-docs

我真的需要你的帮助。 如何将表中的单个单元格与文档中的数据相链接? 在表格中,我有计算,我需要通过自动更新将结果传输到谷歌文档。例如,Excel中的“特殊插入 - 链接”。 我可以在谷歌文档中这样做吗?

2 个答案:

答案 0 :(得分:2)

我还在学习更多关于Google文档的内容,因此可能有更好的方法来实现这一目标。但这里有一个函数可以帮助您识别Google doc中每个表的子索引,行索引和单元索引。第二个函数可以作为从电子表格中取出数据并将其放入子索引,行索引,单元格索引的起点。

function findMyTables() 
{
  var doc=DocumentApp.getActiveDocument();
  var body=doc.getBody();
  var br='<br />';
  var s='';
  if(body)
  {
    var numChildren=body.getNumChildren();
    for(var i=0;i<numChildren;i++)
    {
      var child=body.getChild(i);
      if(child.getType()==DocumentApp.ElementType.TABLE)
      {
        s+=br + 'ChildIndex = ' + i;
        s+=br + 'Cell[row index][column index] ';
        var numrows = child.asTable().getNumRows();
        for(var j=0;j<numrows;j++)
        {
          var numcells=child.asTable().getRow(j).getNumCells();
          for(var k=0;k<numcells;k++)
          {
            var celltxt=child.asTable().getCell(j, k).editAsText().getText();
            s+=br + '<strong>Cell[' + j + '][' + k + ']= </strong>' + '<span style="color:#ff0000;font-size:14px;font-weight:bold;">' + celltxt + '</span>';
          }
        }
      }
    }
  }
  var html=HtmlService.createHtmlOutput(s).setWidth(600).setHeight(450);
  DocumentApp.getUi().showModelessDialog(html, 'My Tables');

从电子表格中获取数据相对简单,但我发现进入Google Doc会稍微困难一些。这是一个获取子索引,行索引和单元格索引并将数据输入Google Docs的函数。目前我还没有解决为什么它会改变格式。我希望这个网站上的一个大枪会怜悯我们可怜的空洞的灵魂并启发我们。

function saveChildTableCellChanges(childidx,rowidx,cellidx,text)
{
  var doc=DocumentApp.getActiveDocument();
  var child=doc.getBody().getChild(childidx);
  child.asTable().getRow(rowidx).getCell(cellidx).editAsText().setText(text);
}

答案 1 :(得分:1)

如果您可以不进行自动更新尝试了来自此处和Google支持论坛的一些建议,但没有一个对我有用),则您可以复制多个单元格(不适用于单个单元格),然后将其从Google电子表格( ctrl + C )粘贴到文档( ctrl + V )中,要求选择:

  

粘贴表:

     

[x]链接到电子表格<-您需要此选项

     

[]暂停未链接

如果粘贴单个单元格,则不会显示以上内容!

  

显示为“假单个单元格” 的解决方法:

     
      
  1. 复制并粘贴两个单元格,一个单元格包含您的数据,另一个单元格为空,在电子表格中隐藏具有空单元格的列或行,然后在文档中更新表格。
  2.   
  3. 复制并粘贴两个单元格,一个单元格拥有您的数据,另一个单元格为空,接下来将空单元格边框修改为0磅宽,并将其拖动到尽可能小的位置(不要破坏文档的流动)。
  4.   

如果由于工作表布局的原因,很难在数据单元格旁边找到空单元格,只需在该电子表格中仅创建另一个工作表(可以将其设置为“ protected” )即可。您要在文档中链接的数据,并从此新表中复制数据。


记住! 您将需要手动更新,每次内容不同步时,文档都应在链接表上方显示给您并显示更新按钮。