如何解决如何使Google表格脚本忽略带公式的字段
我已经构建了一个脚本,该脚本运行得很好,但是出于可用性的考虑,我想通过公式来填充为构建有效负载而查询的字段。
问题:如果我的字段中没有值,但包含公式,那么脚本会将空值发送给api,导致停止后续功能时出错。
如果我手动设置包含公式的字段数组,那么它将起作用。
我正在寻找的解决方案:我的脚本的代码行,在遇到带有公式而不是值的字段时会中断。
我希望这个问题/问题清楚。
我尝试了这段代码,但是没有用:
for (var i = 1; i < data_statistics.length; i++) {
if (data_statistics[i] === undefined) {
break;
}
else if (data_statistics[i][0].includes("=")) {
break;
}
这是工作功能:
function Mean(){
var sheet_statistics = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Mean")
var data_statistics = sheet_statistics.getDataRange().getValues();
var token = _requestToken();
var col_start = 2
for (var i = 1; i < data_statistics.length; i++) {
if (data_statistics[i] === undefined) {
break;
}
// Build payloads and apply small sanity checks payload specific
// Payload same typo
var payload = Object();
for (var j = col_start; j < data_statistics[0].length; j++) {
_buildPayload(payload,data_statistics[0][j].split('.'),data_statistics[i][j]);
}
payload.filters.divisionLevel100 = String(payload.filters.divisionLevel100);
// Get statistics
var statistics = _getOfferStatistics(token,payload)
// Set statistics values in cells
sheet_statistics.getRange(i+1,1).setValue(statistics.metric)
sheet_statistics.getRange(i+1,2).setValue(statistics.value)
解决方法
- 使用
getFormulas()
,它返回- 没有公式的空字符串
const data_statistics_rg = sheet_statistics.getDataRange(),data_statistics = data_statistics_rg.getValues(),data_statistics_formulas = data_statistics_rg.getFormulas();
for (var i = 1; i < data_statistics.length; i++) {
if (data_statistics[i] === undefined) {
break;
}
else if (!data_statistics_formulas[i][0].includes("")) {
break;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。