Google App脚本文档应用程序获取选定的行或单词? [英] Google App script Document App get selected lines or words?

查看:111
本文介绍了Google App脚本文档应用程序获取选定的行或单词?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从Google文档和脚本中选择由鼠标 组成的单词或行 。

  var doc = DocumentApp.getActiveDocument(); 
var docText = doc.editAsText();
var text = docText.getSelection();

我尝试过,但没有找到像VBA中那样的选择方法

解决方案

昨天添加了使用光标位置和选定文本的功能,可以解决问题2865:获取当前用户位置和文档中的状态信息。另请参阅博客文章

事实证明,使用选择有一些技巧。我试图在这里展示他们 - 请添加评论,如果你找到其他人,我会很乐意更新。

 函数onOpen(){
DocumentApp.getUi()。createMenu('Selection')
。 addItem(报告选择,reportSelection)
.addToUi();
}

function reportSelection(){
var doc = DocumentApp.getActiveDocument();
var selection = doc.getSelection();
var ui = DocumentApp.getUi();

var report =您的选择:;

if(!selection){
report + =没有当前选择;
}
else {
var elements = selection.getSelectedElements();
//报告#元素。为简单起见,假设元素是段落
report + =段落选择:+ elements.length +。;
if(elements.length> 1){
}
else {
var element = elements [0] .getElement();
var startOffset = elements [0] .getStartOffset(); // -1如果整个元素
var endOffset = elements [0] .getEndOffsetInclusive(); // -1如果整个元素
var selectedText = element.asText()。getText(); //元素
//中的所有文本只是选中元素的一部分?
if(elements [0] .isPartial())
selectedText = selectedText.substring(startOffset,endOffset + 1);

// Google Doc UI单词选择(双击)
//选择尾部空格 - 修剪它们
selectedText = selectedText.trim();
endOffset = startOffset + selectedText.length - 1;

//现在准备交给格式化,setLinkUrl等。

report + =选中的文本是:'+ selectedText +',;
report + =并且是+(元素[0] .isPartial()?部分:全部)+段落。
}
}
ui.alert(report);
}


I want to select words or lines by mouse from Google document and by script I get this selected words or lines.

  var doc=DocumentApp.getActiveDocument();
  var docText = doc.editAsText();
  var text=docText.getSelection();

I tried but I didn't find any methods for selection like in VBA

解决方案

The ability to work with cursor position and selected text was added yesterday, addressing Issue 2865: Get current user location & state information in Document. See the blog post as well.

It turns out that there are some tricks to working with selections. I've tried to show them here - please add comments if you find any others, I'll gladly update.

function onOpen() {
  DocumentApp.getUi().createMenu('Selection')
    .addItem("Report Selection", 'reportSelection' )
    .addToUi();
}

function reportSelection () {
  var doc = DocumentApp.getActiveDocument();
  var selection = doc.getSelection();
  var ui = DocumentApp.getUi();

  var report = "Your Selection: ";

  if (!selection) {
    report += " No current selection ";
  }
  else {
    var elements = selection.getSelectedElements();
    // Report # elements. For simplicity, assume elements are paragraphs
    report += " Paragraphs selected: " + elements.length + ". ";
    if (elements.length > 1) {
    }
    else {
      var element = elements[0].getElement();
      var startOffset = elements[0].getStartOffset();      // -1 if whole element
      var endOffset = elements[0].getEndOffsetInclusive(); // -1 if whole element
      var selectedText = element.asText().getText();       // All text from element
      // Is only part of the element selected?
      if (elements[0].isPartial())
        selectedText = selectedText.substring(startOffset,endOffset+1);

      // Google Doc UI "word selection" (double click)
      // selects trailing spaces - trim them
      selectedText = selectedText.trim();
      endOffset = startOffset + selectedText.length - 1;

      // Now ready to hand off to format, setLinkUrl, etc.

      report += " Selected text is: '" + selectedText + "', ";
      report += " and is " + (elements[0].isPartial() ? "part" : "all") + " of the paragraph."
    }
  }
  ui.alert( report );
}

这篇关于Google App脚本文档应用程序获取选定的行或单词?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆