【发布时间】:2020-12-09 14:09:50
【问题描述】:
我正在尝试将以“dd.mm.yy”格式存储的数据转换为 Google 表格/Appscript 中的“w”格式。不幸的是,我无法使用“.formatDate()”函数,因为工作表无法将输入值识别为日期值,因此我尝试了以下操作:
function CheckWeekNuber() {
var dateStr =SpreadsheetApp.getActiveSpreadsheet().getSheetByName("INSERT RAW DATA HERE").getRange(3,5,300,4).getValues();
var day = dateStr.substring(0,2);
var month = dateStr.substring(3,5);
var year = "20"+dateStr.substring(6,8);
var weekNumb = Utilities.formatDate(new Date(year, month-1, day), "GMT", "w");
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("WEEKNUMBERS").getRange(3,5,300,4).setValues(weekNumb);
}
它与 foo 循环完美配合,一次转换每个单个值。但它超级慢。我的问题在于对数组使用“.substring()”公式,它似乎不起作用.. 你知道如何解决它吗?
【问题讨论】:
-
工作表中的值是合法的日期对象吗?
=date(A1)是否为存储在单元格 A1 中的日期返回 true ? -
不,不幸的是它们被视为文本(因为输入日期格式已经错误)
标签: javascript java arrays google-sheets substring