Google Apps脚本中的常规帮助

时间:2013-04-11 18:27:17

标签: google-apps-script

好的,我已经厌倦了寻找具体的问题来帮助项目,找到答案,改变我的实施,只是增加了更多的问题,意识到有更好的方法做事等等。所以请允许我要求一般如果需要的话,我会尽力研究如何做,并提出进一步的问题。

  • 我正在编写一个脚本,用作Google网站页面中的小工具 (如果有人想看看,我非常愿意分享这个 在它);现在我正在为我做这个,但我想写 这很容易被他人使用。
  • 这将列出指定文件夹中所有用户的Google文档;什么时候 从列表中选择文档,将显示内容 在另一个领域进行编辑。
  • 用户可以定义某些行,从句点开始, “标记”为可以自动转换的和弦 按下按钮;也就是说,用户点击一个按钮即可 A转到A#,B转C,C转C#等等,但仅限于指定的 “和弦”行。
  • 然后,用户可以将此文档保存回Google文档 如果需要,可以打印。

我主要有布局。我遇到的一些问题:

  • 执行.find显然会找到名称中包含给定字符串的所有文档 内容。解决方法是将文档ID放在隐藏中,但似乎不是 List返回您单击的编号项,因此我如何获取ID 那是存放在其他地方的吗?
  • 我希望TextArea是用于粗体加工的富文本,以及什么不是;不 谷歌应用程序有一个文本编辑器(如果我可以放,它会很棒 面板中的Google Docs编辑器)? RichTextArea已经 已弃用,是否有替代品?
  • 为了进行移调,我计划只放置每一个角色 将文本区域转换为数组,逐步通过数组 看到一个“\ n”后跟一个“。”翻转var“on”,然后改变任何 跟随字符,然后如果它看到另一个“\ n”来转动var “关”;有更好的方法吗?
  • 或者,是否有办法将脚本添加到Google文档中 转置(我知道你可以为电子表格做宏,但那里 实际上似乎并不等同于文件)?那样我就可以 只需发布此宏并告诉人们使用他们现有的文档。

如果我需要提出单独的问题,请告诉我。感谢。

1 个答案:

答案 0 :(得分:2)

既然你问过,是的,单独的问题是合适的,因为问题的组合是非常专业的,而个别问题可能更普遍,并且对更多人有用。但是,无论如何,让我试一试......

  

[使用find()]的结果...我怎样才能获得存储在其他地方的ID?

DocsList.find()会返回File objects的列表。类文件具有getId()方法,该方法返回您在Google云端硬盘中看到的文档ID。要获取所有文件的ID:

var files = DocsList.getAllFiles();
for (var i in files) {
  Logger.log(files[i].getId());
}

您还应该查看DocsListDialog以创建适用于Google云端硬盘的文件选择器。

  

RichTextArea已被弃用,是否有替换?

不,不在应用程序脚本中。你刚刚得到TextArea。但是,您可以在UI中嵌入第三方富文本编辑器。

  

要进行转置,...有更好的方法吗?

将TextArea.value更改为一个行数组,然后对其进行操作,而无需管理开/关状态。请参阅How do I get information out of TextArea in Google App Script on the button click?Javascript: Convert textarea into an array

// aTextArea contains user's input. Probably a Johnny Cash song.
var inputText = e.parameter.aTextArea;
var inputLines = inputText.split('\n');
for (var i in inputLines) {
  if (inputLines[i].charAt(0) == '.') {
    // Transpose
  }
}
// Put lines back together, if you wish
var outputText = inputLines.join('\n');
  

..有没有办法将脚本添加到可以进行转置的Google文档中......

是(自问题最初提出以来,功能已扩展到文档和表单)。 不,电子表格是目前唯一可以作为脚本容器的文档类型。

或者,您可以使用独立脚本直接在Docs上操作!也许将脚本部署为Web App,允许用户从其Google云端硬盘上的文档中选择要转置的目标音乐,然后写入文档的新副本,转置?