小编IMT*_*Man的帖子

npm -S 标志是什么意思?

-Snpm的标志是什么意思?我看到这里引用https://docs.npmjs.com/cli/install不包括它-S是什么。

npm i -S @types/google-apps-script
Run Code Online (Sandbox Code Playgroud)

npm

13
推荐指数
2
解决办法
6448
查看次数

切换与对象查找性能(因为 jsperf 已关闭)

在我看来,在某些情况下,如果某个值等于某个值,有两种方法可以做某事:开关或对象查找。

使用开关:

var value = ["Hello", "hi", "bYe", "die"][Math.floor(Math.random() * (4))];

switch (value.toLowerCase()) {
  case "hello":
    alert(value + "\n\n" + "hi");
    break;
  case "hi":
    alert(value + "\n\n" + "hello");
    break;
  case "bye":
    alert(value + "\n\n" + "no");
    break;
  case "die":
    alert(value + "\n\n" + "you shot me");
    break;
}
Run Code Online (Sandbox Code Playgroud)

使用对象查找:

var value = ["Hello", "hi", "bYe", "die"][Math.floor(Math.random() * (4))];

var LOOKUP = {
  "hello": function(v) {
    alert(v + "\n\n" + "hi");
  },
  "hi": function(v) {
    alert(v + "\n\n" + "hello"); …
Run Code Online (Sandbox Code Playgroud)

javascript performance

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

使用 TextFinder 搜索范围比搜索整个工作表慢

我有一张有很多行的表——数千行。我想在特定列中搜索文本。我正在使用Range.createTextFinder,但超时了。如果Sheet只有4行数据,甚至会超时。

// This is very slow
var found = sheet.getRange("A:A").createTextFinder("dog").matchCase(false).findNext();
Run Code Online (Sandbox Code Playgroud)

如果我搜索整个工作表,速度相当快,但我只想检查特定列。

// This works faster but it searches the entire sheet
var found = sheet.createTextFinder("dog").matchCase(false).findNext();
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法来查找特定列中包含字符串的第一行?

更新:这是执行记录:

[19-06-09 14:16:48:430 EDT] Starting execution
[19-06-09 14:16:48:513 EDT] SpreadsheetApp.openById([redacted]) [0.071 seconds]
[19-06-09 14:16:48:513 EDT] Spreadsheet.getSheetByName([Sheet2]) [0 seconds]
[19-06-09 14:16:48:514 EDT] Sheet.createTextFinder([b]) [0 seconds]
[19-06-09 14:16:48:514 EDT] TextFinder.matchCase([false]) [0 seconds]
[19-06-09 14:16:48:595 EDT] TextFinder.findNext() [0.08 seconds]
[19-06-09 14:16:48:596 EDT] Sheet.getRange([A:A]) [0 seconds]
[19-06-09 14:16:48:596 EDT] Range.createTextFinder([b]) [0 seconds]
[19-06-09 14:16:48:597 EDT] …
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script

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

GAS脚本是否可以锁定Google表格,以便其他人无法更改它,直到脚本完成

我熟悉锁定服务,但这仅用于锁定脚本。

我有一些代码可以“处理”大型Google表格。我的脚本需要对行重新排序。我需要/想要这样做,因此在脚本运行时,没有其他人可以更改顺序。但是,我仍然需要另一个脚本才能附加行。

我们将Google表单用于我们的团队。它将行追加到工作表。我有一个小时工作,将遍历所有行/记录并“处理它们”。我有一列存储上一次“处理”记录/行的时间。我想对该列进行排序,以使“最旧的”记录位于顶部,然后从上至下开始处理。如果脚本失败或超时,则下一次迭代将重新开始...

我知道我可以使用getValuesgetDisplayValues获取一个数组,然后将其写回,但是我担心如果有人对行进行排序会怎样,因为回写数组时会把事情弄糟。

有什么办法可以实现我的目标?我希望能够处理记录,并保持行顺序以避免中断我的处理。

google-sheets google-apps-script

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

检查触发器执行当前是否正在 Google Apps 脚本中运行

是否可以查看特定项目的触发器是否有任何活动/正在运行的执行?

我有一个一次性迁移脚本/项目,用于将数千个 Google 表格文件更新为新的模板格式。根据我的计算,该脚本将需要几个小时才能运行。我们的 G-Suite Enterprise 环境的执行时间限制为 30 分钟。

我的代码是这样编写的,如果脚本由于某种原因失败,我可以重新运行它,它将从停止的地方继续。

有时,脚本会因其他原因而失败,例如内存错误或网络连接问题。

所以我想设置一个 15 分钟的触发器来运行脚本。我希望它检查另一个执行是否仍在运行。如果是的话,就会停止。如果不是,那么它将继续。

我知道如何使用ScriptApp.getProjectTriggers()查看链接到项目的触发器,但从中我不知道如何找到正在运行的执行。

google-apps-script

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

是否可以在 docker compose 文件中设置服务的全局设置?

是否可以在 Docker compose 文件中指定服务的全局设置?

例如,采用以下 Docker Compose 文件:

version: "3.9"

services:
  test1:
    env_file: /path/to/env/file
    image: test
    container_name: test1
    ports:
      - "1234:22"
    networks:
      - dmz
    restart: always
  test2:
    env_file: /path/to/env/file
    image: test
    container_name: test2
    ports:
      - "2345:22"
    networks:
      - trust
    restart: always

networks:
  dmz:
    driver: bridge
  trust:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

我不想对env_file: /path/to/env/file每项服务都适用,而是希望使其适用于所有服务。我知道我可以在命令行中传递它docker-compose,但我希望从 Docker 撰写文件中执行此操作。

docker docker-compose

5
推荐指数
2
解决办法
1625
查看次数

Windows 中的 VS Code 上的环境变量未传递 - bug 还是我遗漏了某些内容?

我正在使用https://github.com/google/clasp进行开发。clasp将使用环境变量clasp_config_auth。我已经测试并确认,在 VS Code 之外,如果我设置了环境变量,clasp_config_auth然后clasp就会选择它并按预期工作

但在 VS Code 中却无法按预期工作。

我的 中有以下内容tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "options": {
        "env": {
            "clasp_config_auth": "~/path/to/file/.clasprc.json.me"
        }
    },
    "windows": {
        "options": {
            "env": {
                "clasp_config_auth": "%userprofile%\\path\\to\\file\\.clasprc.json",
            }
        }
    },
    "tasks": [
        {
            "label": "push to GAS",
            "type": "shell",
            "command": "clasp push",
            "group": {
                "kind": "build",
                "isDefault": true
            },
        }
    ] …
Run Code Online (Sandbox Code Playgroud)

visual-studio-code vscode-tasks

5
推荐指数
0
解决办法
993
查看次数

Google 表格中的数据透视表的计算列中的 SUMIF 给出“参数必须是一个范围”。错误

我正在尝试创建一个计算列,如果另一列等于某值,则该计算列会对一列进行求和。

我正在使用这个公式,我认为它应该有效,但它给出了错误Argument must be a range.

=SUMIF(type, "a", age)
Run Code Online (Sandbox Code Playgroud)

我的样本数据:

在此输入图像描述

我的数据透视表出现错误:

在此输入图像描述

在此输入图像描述

google-sheets-formula

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

Google Apps 脚本配额如何对网络应用程序中的 doGet 和 doPost 函数起作用?

我已阅读https://developers.google.com/apps-script/guides/services/quotas并了解配额是什么以及它们是如何工作的。

我无法弄清楚配额如何应用于网络应用程序,特别是doGetdoPost功能?

例如:

  • 假设 Web 应用程序通过以下方式提供静态 HTML 内容doGet-- 是Script runtime唯一适用的配额吗?
  • 假设一个 Web 应用程序通过doGet从工作表中提取和显示数据来服务动态 HTML 内容——适用哪些配额?
  • 如果 Web 应用程序也接受表单提交使用doPost- 那么怎么办?

我了解配额适用于用户如何拥有网络应用程序。我只是无法弄清楚哪些配额适用于 Web 内容方面。显然Script runtime适用,但还有什么?

web-applications quota google-apps-script

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

CSS2版本的高度:计算(100% - 18px)

我怎么能height: calc(100% - 18px);在CSS2中做?我div在页面上有3 个.

<body>
    <div id="top">top</div>
    <div id="middle">middle</div>
    <div id="bottom">bottom</div>
</body>
Run Code Online (Sandbox Code Playgroud)
  • 我希望top100%身高减去200px
  • 我想middle成为200px并且就在下面top
  • 我想要bottom紧接着bottom

我的想法是,当滚动条位于最顶端时top,middle占据浏览器窗口的100%,但用户应该可以向下滚动查看bottom.当用户滚动top并且bottom仍然是相同的大小时(除非用户调整窗口大小).

我想在没有JavaScript的情况下这样做,它需要是CSS2,因为我们还没有CSS3兼容的浏览器.

html css

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