Google 下载已发布的 CSV 文件时,表格自定义功能不起作用
Google Sheets custom function not working when downloading as published CSV
我在 Google Spreadsheet 中创建了一个自定义函数,该函数根据循环、前缀、后缀和一些单元格,用管道分隔的文件路径列表填充单元格参考。这对 sheet 本身非常有效。
但我还使用 "Publish to the web..." 功能将此 sheet 发布为 CSV。这也有效,只要我在浏览器中打开 sheet 本身。
但是一旦我关闭该浏览器 window,大约 5 分钟后(发布刷新 window 我相信),这些单元格中填充了“#NAME?”在下载的 CSV 中。在已发布的 CSV 文件的 "headless" 模式下,自定义函数似乎不能 运行。
有办法解决这个问题吗?
自定义函数不向已发布的视图提供值,因为它们 运行 在访问者的范围内。对于已发布的视图,这是无法访问脚本资源的匿名访问者(因此出现 #NAME
错误)。
解决方案是通过脚本函数实现静态赋值。根据您的电子表格使用情况(您未提供明确信息),可以使用 on edit
或 time-based 触发器来调用自定义计算。
我怀疑您需要一个函数,该函数在编辑包含文件路径的单元格时触发,并写入给定的静态范围。
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
}
}
我在 Google Spreadsheet 中创建了一个自定义函数,该函数根据循环、前缀、后缀和一些单元格,用管道分隔的文件路径列表填充单元格参考。这对 sheet 本身非常有效。
但我还使用 "Publish to the web..." 功能将此 sheet 发布为 CSV。这也有效,只要我在浏览器中打开 sheet 本身。
但是一旦我关闭该浏览器 window,大约 5 分钟后(发布刷新 window 我相信),这些单元格中填充了“#NAME?”在下载的 CSV 中。在已发布的 CSV 文件的 "headless" 模式下,自定义函数似乎不能 运行。
有办法解决这个问题吗?
自定义函数不向已发布的视图提供值,因为它们 运行 在访问者的范围内。对于已发布的视图,这是无法访问脚本资源的匿名访问者(因此出现 #NAME
错误)。
解决方案是通过脚本函数实现静态赋值。根据您的电子表格使用情况(您未提供明确信息),可以使用 on edit
或 time-based 触发器来调用自定义计算。
我怀疑您需要一个函数,该函数在编辑包含文件路径的单元格时触发,并写入给定的静态范围。
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
}
}