谷歌文档清除格式并在脚本运行后移动光标

时间:2017-06-30 20:13:37

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

所以,我试图在谷歌文档中插入日期和时间,并使用以下谷歌应用程序脚本来做到这一点。我在这个网站上找到了这个脚本并进行了一些编辑。它完成了这项工作。但我的问题是,在脚本运行后光标停留在同一个地方,我希望它开始下一个新行。此外,页面的格式将粘贴到脚本中指定的位置,我希望它更改,如更改字体和大小,重置粗体等。我该怎么做?

function onOpen() {
  // Add a menu with some items, some separators, and a sub-menu.
  DocumentApp.getUi().createMenu('Utilities')
      .addItem('Insert Date', 'insertAtCursor')
      .addToUi();
}


function insertAtCursor() {
  var cursor = DocumentApp.getActiveDocument().getCursor();

  if (cursor) {
    var date = Utilities.formatDate(new Date(), "GMT+5:30", " MMMMM,dd \nhh:mm a \n"); 
    var element = cursor.insertText(date);
    if (element) {
      element.setBold(true).setItalic(true).setForegroundColor("#A32929");
      element.setFontSize(16).setFontFamily('Cambria'); 
    } else {
      DocumentApp.getUi().alert('Cannot insert text at this cursor location.');
    }
  } else {
    DocumentApp.getUi().alert('Cannot find a cursor in the document.');

  }
}

1 个答案:

答案 0 :(得分:1)

如果您希望光标转到下一行,那么代码中的某个位置必须为光标指定一个新位置。您可以使用.setCursor(Position)执行此操作。详细了解here

格式化不变的原因是每行只能运行一次格式化执行。

function insertAtCursor() {
  var cursor = DocumentApp.getActiveDocument().getCursor();

  if (cursor) {
    var date = Utilities.formatDate(new Date(), "GMT+5:30", " MMMMM,dd \nhh:mm a \n"); 
    var element = cursor.insertText(date);
    if (element) {
      element.setBold(true);
      element.setItalic(true);
      element.setForegroundColor("#A32929");
      element.setFontSize(16);
      element.setFontFamily('Cambria'); 
    } else {
      DocumentApp.getUi().alert('Cannot insert text at this cursor location.');
    }
  } else {
    DocumentApp.getUi().alert('Cannot find a cursor in the document.');

  }
var position =  doc.newPosition('your new position');
doc.setCursor(position);

}

希望这有帮助。