【问题标题】:Google Sheets custom function not working when downloading as published CSV下载为已发布的 CSV 时,Google 表格自定义功能不起作用
【发布时间】:2018-03-11 21:56:35
【问题描述】:

我在 Google 电子表格中创建了一个自定义函数,该函数根据循环、前缀、后缀和一些单元格引用,使用管道分隔的文件路径列表填充单元格。这在工作表本身上效果很好。

但我还使用“发布到网络...”功能将此工作表发布为 CSV。这也有效,只要我在浏览器中打开工作表。

但是,一旦我关闭该浏览器窗口,大约 5 分钟后(我相信是发布刷新窗口),这些单元格将填充“#NAME?”在下载的 CSV 文件中。似乎自定义函数无法在已发布 CSV 文件的“无头”模式下运行。

有没有办法解决这个问题?

【问题讨论】:

    标签: google-apps-script google-sheets custom-function


    【解决方案1】:

    自定义函数不会为发布的视图提供值,因为它们在访问者的范围内运行。对于已发布的视图,这是一个无法访问脚本资源的匿名访问者(因此出现 #NAME 错误)。

    解决方案是从脚本函数实现静态赋值。根据您的电子表格使用情况(您未提供明确信息),on edit 或基于时间的触发器可用于调用自定义计算。

    我怀疑你会想要一个在编辑包含文件路径的单元格时触发的函数,并写入给定的静态范围。

    function onEdit(e) {
      // Ensure the edited cell was the correct sheet and column.
      var s = e.range.getSheet();
      if(s.getName() == ... && e.range.getColumn() == ... ) {
        // Your code called from here
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多