【发布时间】:2021-09-14 16:43:06
【问题描述】:
阅读了几篇解决无法使用应用程序脚本检索公式产生的值的帖子后,我怀疑我只是在这上面浪费宝贵的时间。
通过脚本,我使用 getDisplayValues() 检索了一组 显示 值,并使用 getValues() 检索了实际(我认为)值。每个数组都包含整列,而实际上只有单元格 2-11 包含公式输出。
尝试从数组中检索值返回 NULL。
var SpreadsheetID = "myID";
var SheetName = "mySheet";
function gammaTilt() {
var ss = SpreadsheetApp.openById(SpreadsheetID);
var sheet = ss.getSheetByName(SheetName);
var column = sheet.getRange("AH1:AH");
var dispVal = column.getDisplayValues(); // returns array of full column, including display values
var cellVal = column.getValues(); // returns array of full column, including actual (?) values
var label = dispVal[0][0]; // returns column header, a string value
var d = dispVal[11][0]; // returns null
var a = cellVal[11][0]; // returns null
};
AH 列的长度是动态的,因此解决方案必须找到数据范围长度,然后是范围中的最后一个值。不过,apps 脚本似乎找不到由公式创建的范围?
这样做会复杂得多,但这是唯一可行的方法来开发与原始数据集一起使用的应用程序脚本,而不是对这些数据进行电子表格操作?
编辑: cellVal 的日志输出
[21-09-14 13:02:33:500 PDT] Logging output too large. Truncating output.
[[All Date],
[Sun Aug 29 17:00:00 GMT-07:00 2021],
[Mon Aug 30 17:00:00 GMT-07:00 2021],
[Tue Aug 31 17:00:00 GMT-07:00 2021],
[Wed Sep 01 17:00:00 GMT-07:00 2021],
[Thu Sep 02 17:00:00 GMT-07:00 2021],
[Mon Sep 06 17:00:00 GMT-07:00 2021],
[Tue Sep 07 17:00:00 GMT-07:00 2021],
[Wed Sep 08 17:00:00 GMT-07:00 2021],
[Thu Sep 09 17:00:00 GMT-07:00 2021],
[Sun Sep 12 17:00:00 GMT-07:00 2021],
[Mon Sep 13 17:00:00 GMT-07:00 2021],
//The remainder of the array is empty cell values
工作表中的实际单元格值:
AH1 All Date
AH2 Mon Aug 30 2021
AH3 Tue Aug 31 2021
AH4 Wed Sep 1 2021
AH5 Thu Sep 2 2021
AH6 Fri Sep 3 2021
AH7 Tue Sep 7 2021
AH8 Wed Sep 8 2021
AH9 Thu Sep 9 2021
AH10 Fri Sep 10 2021
AH11 Mon Sep 13 2021
AH12 Tue Sep 14 2021
知道为什么日期字符串在返回的数组中是偏移的吗?
【问题讨论】:
-
字符串
Sun Aug 29 17:00:00 GMT-07:00 2021看起来有点奇怪。尝试更改此列的格式以查看这些日期的时间。我怀疑它会将时间重置为0:00:00。 -
有趣。仅时间格式显示 12:00:00AM。日期和时间显示日期 + 时间为 0:00:00。添加 AM / PM 会将其还原为 12:00:00AM。该脚本仍然检索具有偏移量的日期。你问过时区 - 我在太平洋标准时间。我将设置从“太平洋”更改为“太平洋 - 温哥华”和宾果游戏。我把它改回太平洋,问题解决了。返回的字符串仍然是:[Mon Aug 30 00:00:00 GMT-07:00 2021],无论对列格式进行任何更改。
标签: google-apps-script google-sheets-formula