标签: google-apps-script

对特殊字符使用 replaceText 的问题:[ ]

我想用“[1]”和向后替换“\cite{foo123a}”。到目前为止,我能够用以下命令替换文本

body.replaceText('.cite{foo}', '[1]');
Run Code Online (Sandbox Code Playgroud)

但我没有设法使用

body.replaceText('\cite{foo}', '[1]');
body.replaceText('\\cite{foo}', '[1]');
Run Code Online (Sandbox Code Playgroud)

为什么?

我根本无法工作的反向转换

body.replaceText('[1]', '\\cite{foo}');
Run Code Online (Sandbox Code Playgroud)

这将仅替换“1”而不是 [],这意味着 [] 被解释为正则表达式字符集,转义它们无济于事

body.replaceText('\[1\]', '\\cite{foo}');//no effect, still a char set
body.replaceText('/\[1\]/', '\\cite{foo}');//no matches
Run Code Online (Sandbox Code Playgroud)

该文件指出

不完全支持 JavaScript 正则表达式功能的子集,例如捕获组和模式修饰符。

我可以找到支持哪些内容以及不支持哪些内容的完整说明吗?

google-docs google-apps-script

1
推荐指数
1
解决办法
2197
查看次数

如何通过用户交互记录应用程序脚本?

我想记录一个应用程序脚本,该脚本旨在作为服务运行,并且需要用户交互。日志日志(在谷歌脚本编辑器中)确实记录了“doGet start”条目,而不是“处理程序”条目......因为点击谷歌编辑器中的“执行”按钮不会显示 UiApp。

我发现有效查看 Ui 的唯一方法是发布脚本并执行其公共 url ......但是我不知道在哪里可以找到日志。

欢迎任何提示,谢谢。

function doGet() {
  Logger.log("doGet start");
  var app = UiApp.createApplication().setTitle(" ");
  var handler = app.createServerHandler('selectionHandler');
  var docsUI = app.createDocsListDialog().addSelectionHandler(handler).showDocsPicker();
  return app;
}

function selectionHandler(e){
  var app = UiApp.getActiveApplication();
  Logger.log("handler");
  Logger.log(e.parameter);
  return app;
}
Run Code Online (Sandbox Code Playgroud)

logging google-apps-script

1
推荐指数
1
解决办法
525
查看次数

使用 Busy 修饰符的 Google Apps Script 日历事件

我正在尝试编写一个脚本,该脚本仅修改标记为“忙碌”的事件,但似乎无法弄清楚我的脚本如何查看该信息。有任何想法吗?

google-apps-script

1
推荐指数
1
解决办法
1919
查看次数

使用 google-apps-script 了解文件类型

我正在尝试获取文件类型。
当我使用 getFileType() 函数时,我只得到“其他”,如下所述:https : //developers.google.com/apps-script/class_docslist_filetype
那么我怎么知道类型呢?(pdf,jpg)

google-apps-script

1
推荐指数
1
解决办法
5221
查看次数

如何将具有值和公式的行复制到数组中?

是否有一种 API 方法可以与人们期望调用的方法所做的事情等效sheet.getRange().getValuesOrFormulas()?即(伪代码):

for each cell in the range
  if(cell.getFormula() != '')
    cell.getFormula();
  else cell.getValue()
Run Code Online (Sandbox Code Playgroud)

如果没有,是否有人愿意分享自定义功能?

google-sheets google-apps-script

1
推荐指数
1
解决办法
1542
查看次数

使用谷歌应用程序脚本将谷歌驱动器中的 pdf 附加到电子邮件

我正在使用自定义创建的谷歌应用程序脚本来发送一些电子邮件。我的谷歌驱动器中有一个 PDF,我试图将其附加到电子邮件中,但它不起作用。我不断收到错误“文档丢失(可能已被删除?)”

这是我的完整代码...

    function sendDetails(e) {
var itemURL = 'https://docs.google.com/file/d/0Bw7JWLKeRBKASUFldGM1RTRIaFE/edit';
var docName = DocumentApp.openByUrl(itemURL).getName();
}
Run Code Online (Sandbox Code Playgroud)

请注意,上述 PDF 是任何人都可以访问的可公开访问的 PDF 文件。我知道它存在,但它不允许我访问它。我要做的就是获取文件并将其附加到电子邮件中。我的代码显然比 about 更重要,但我只是为了缩小错误而进行了精简,但没有这样的运气。任何帮助将不胜感激。

email-attachments google-apps-script

1
推荐指数
1
解决办法
2600
查看次数

使用谷歌应用程序脚本创建按钮和输入字段

我想在用户按下 Google App Scripts 中的按钮时提醒他/她。以下代码为 JS 和 HTML:

<html>    
    <body>
        <button onclick='myFunction()'> Press this </button>
    </body>
</html>
<script>
function myFunction()
{
   var b = document.getElementById('result');    
   b.innerHTML = 'You pressed the button.';    
   alert('The output has been modified');    
   return;    
}    
</script>
Run Code Online (Sandbox Code Playgroud)

我将其输入到 HTML 文件中,但我无法理解如何运行它。它给了我一个仅运行该函数的选项。当我这样做时,我收到以下错误:

ReferenceError: "document" is not defined

我尝试将其部署为网络应用程序,但即使这样也不起作用。该按钮出现,但当我单击它时没有任何反应。

告诉我如何纠正这个问题。

javascript google-apps-script

1
推荐指数
1
解决办法
5905
查看次数

Google App : 同一个 App Project 中有多个 HTML 或脚本文件?

我是一名经验丰富的 Web 开发人员,因此带有 Google App Scripts 的 Google Web 框架看起来非常适合我。不幸的是,我在撞墙之前并没有走多远。这是最大的一个(现在)。

场景:开发一个简单的应用程序来解决一些我在接触一门新语言时经常使用的编程问题。将每个问题放在单独的页面上。将 css 和 javascript 放在单独的文件中。

这最初工作正常。第一个问题是均值问题的统计均值。我找到了他们从电子表格中读取数据的入门模板,修改了模板以显示数据,然后从那里开始。CSS 很简单,包含在文件中。它只需要初始的 index.html 和 code.gs。

但是现在,我想修改 index.html 以添加链接以调用其他 HTML 文件,App 项目乐于帮助我添加这些文件。我也可以添加更多 .gs 文件。太好了,我想。但是我怎么称呼他们呢?链接需要一个 URL,但我只有一个指向项目的 URL。据我所知,无法引用同一项目中包含的文件。我可以在其他库中调用函数,但不能在此库的另一页上调用。.gs 脚本看起来是服务器端代码。我如何处理和访问客户端 javascript 文件。还是CSS文件?

我在你的网站上找到了这个,但我不知道如何实际使用它。 在 Google Apps Script 网络应用程序中使用项目 Javascript 和 CSS 文件?.

我已经搜索并搜索了这些问题的答案,但在实际工作项目示例中发现的很少。

感谢你给与我的帮助。

google-apps-script

1
推荐指数
1
解决办法
1万
查看次数

使用谷歌脚本在电子表格中查找值

情况:

  1. 1 个电子表格
  2. 多张
  3. 选择了 1 个单元格(可能会有所不同)

我想要做的是在单击电子表格中的类似按钮的图像时,在与所选单元格(不区分大小写)匹配的任何工作表中查找并设置焦点到下一个单元格。有点像 MS Word 可以为您创建的自定义索引。

我的方法是: - 将所选单元格的值设置为变量(成功) - 找到与该变量匹配的第一个单元格(不是所选单元格)(没有成功) - 将找到的单元格的值设置为变量 2(没有成功) - 设置电子表格的焦点到变量2(没有成功)

function FindSetFocus() 

{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var activecell = sheet.getActiveCell();
var valueactivecell = activecell.getValue();

//here comes the code :)

}
Run Code Online (Sandbox Code Playgroud)

我在以下主题中找到了这个片段,但是我在设置输入和处理输出时遇到了一些问题:如何搜索 Google 电子表格?

我想我可以用“valueactivecell”替换“value”,但我不知道如何设置范围来搜索电子表格中的所有工作表。另外,我希望输出是我可以使用类似 'ss.setActiveSheet(sheet).setActiveSelection("D5");' 设置焦点的东西

/**
 * Finds a value within a given range. 
 * @param value The value to find.
 * @param range The range to search in.
 * @return A …
Run Code Online (Sandbox Code Playgroud)

search focus find google-sheets google-apps-script

1
推荐指数
1
解决办法
5万
查看次数

如何在 Google Apps Script 电子表格嵌入脚本中使用确认按钮?

我有这个 Google Apps 脚本,可以向我在电子表格中选择的人发送一封包含请求的电子邮件:

function sendRequestEmail() {
  var data = SpreadsheetApp.openById(SPREADSHEET);
  if(!employee_ID) {
    employee_ID = getCurrentRow();
    if (employee_ID == 1) {
      var employee_ID = Browser.inputBox("Você precisa selecionar um assistido?", "Choose a row or type its number here:", Browser.Buttons.OK_CANCEL);
    }
  }

  // Fetch variable names
  // they are column names in the spreadsheet
  var sheet = data.getSheets()[0];
  var columns = getRowAsArray(sheet, 1);
  Logger.log("Processing columns =" + columns);
  var employeeData = getRowAsArray(sheet, employee_ID); 
  Logger.log("Processing employeeData = " + employeeData);
  // Assume first …
Run Code Online (Sandbox Code Playgroud)

user-interface google-sheets google-apps-script

1
推荐指数
1
解决办法
6874
查看次数