使用Google脚本

时间:2015-07-05 20:35:50

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

我开发了这段代码,允许自己将几行附加到光标所在的表行下的表中。

var ui = DocumentApp.getUi();
var answer = DocumentApp.getUi().prompt("Add Rows", "Insert the number of rows you want to add in the box below.\nMake sure you have your cursor placed in the table you want to append the rows to.",     DocumentApp.getUi().ButtonSet.OK_CANCEL);
if(answer.getSelectedButton() == ui.Button.OK)
{
  var doc = DocumentApp.getActiveDocument();
  var pos = doc.getCursor();
  var elementin = pos.getElement();
  var tablecell = elementin.getParent();
  var tablerow = tablecell.getParent();
  var table = tablerow.getParent();

  for(var i = 0; i < answer.getResponseText(); i++)
      {
        var row = table.asTable().insertTableRow(table.getChildIndex(tablerow)+1);
        for(var j = 0; j < tablerow.getNumChildren(); j++)
            {
              row.insertTableCell(0);
            }
      }
}
doc.saveAndClose();

代码执行正常,但是当我尝试突出显示最初由默认Google表格构建函数Table\Insert Table→创建的行以及从此程序追加的行时,页面冻结并且我收到错误消息

  

文件不可用   抱歉,此文件存在问题。请重新加载。

     

如果发生这种情况,您可以报告错误。

我认为这个程序正在错误地编辑表。该表显示正确,但在尝试同时突出显示原始行和新行时,所有内容都会冻结。

1 个答案:

答案 0 :(得分:0)

我同意上面的KRR;您的代码段没有任何问题。您的文档可能存在损坏,您只需要使用新文档。

您应该能够简单地制作文档的副本(文件 - &gt;制作副本...),然后将脚本复制/粘贴到新文档中。如果问题出现在新文档中,那么您必须将整个内容复制/粘贴到您从头开始创建的文档中(通过文档上的&#34; +&#34;按钮) .google.com)