使用 App 脚本从电子表格推送数据
Posted
技术标签:
【中文标题】使用 App 脚本从电子表格推送数据【英文标题】:Pushing Data From Spreadsheets Using App Scripts 【发布时间】:2021-10-29 16:33:24 【问题描述】:所以我正在尝试在 Google App Scripts 上编写一个脚本,该脚本执行以下操作: 在具有多列和多行的电子表格上,每当有人选中某行上的复选框时,将存在于同一行但在不同列上的数据推送到 Slack 消息中。
**例如,假设我的电子表格中的 A1 是“XX02”,而 Q1 是一个复选框。如果有人来检查 Q1,我想发送一条自动消息说“XX02 完成”。 **
这是我目前得到的:
var url = "slack url"
function onEdit(e)
var column = e.getColumn;
var row = e.getRow
var newValue = e.value;
var oldValue = e.oldValue;
var payload =
'text' : CELLVALUE + " changed from " + oldValue + " to " + newValue + ":white_check_mark:"
;
var params =
'method' : 'post',
'contentType' : 'application/json',
'payload' : JSON.stringify(payload)
;
return UrlFetchApp.fetch(url, params)
当然,“CELLVALUE”是一个占位符,因为我不知道如何获得该值。因为无论我选中哪个框,我都需要它工作。
到目前为止,我在 Slack 上使用此代码得到的消息是“未定义从未定义更改为 TRUE”。
提前感谢任何可以给我提示的人。
【问题讨论】:
您正在更改复选框的值。但是您想在另一个不变的列中获取值。您的 Slack 消息令人困惑。你想做什么? 嗯,同一行中的所有列都有关于同一个项目的信息(这是一个项目管理电子表格),列 Q1 是一个复选框,A1 包括项目编号,Q2-A2 也是如此,Q3-A3等。基本上,选中 Q 列中的框表示该行中的项目已准备好交付。 【参考方案1】:假设目标列在复选框的旁边:
var range = e.range;
var cell = range.offset(0, -1);
var CELLVALUE = cell.getValue();
参考: offset(rowOffset, columnOffset)
【讨论】:
哦,非常感谢!这就像一个魅力,左边有 16 列,所以我只是调整了这个值,就是这样!很抱歉我的问题不清楚,我对编程很陌生,对 App Scripts 也很陌生。再次感谢!以上是关于使用 App 脚本从电子表格推送数据的主要内容,如果未能解决你的问题,请参考以下文章
Google Apps 脚本 - 将一行数据从一个电子表格移动到另一个电子表格