【发布时间】:2021-04-17 23:12:20
【问题描述】:
我有一张顶部有日期的表格。日期的格式并不完全相同。我在欧洲,所以它们通常是 dd/mm/yy 或 dd/mm/yyyy。我把这个函数放到apps脚本区
function dateChange() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var column = sheet.getRange("D1:Y1");
column.setNumberFormat("dd/mm/yy");
}
为了使所有内容都保持相同的格式但没有更改任何值,仍然有很多内容显示为 dd/mm/yyyy。我还尝试仅突出显示该行并选择格式 - 然后将其设为 dd/mm/yy - 仍然不行。
下面的评论者建议它们可能是字符串,而不是日期。如何测试单元格内容是字符串还是日期?如果它是像 31/03/21 或 31/03/2021 这样的字符串,我该如何将其更改为日期?
这里是一个精简版工作表的链接,您可以在其中看到单元格中混合的“日期”格式:https://docs.google.com/spreadsheets/d/1N0DwwON-7u7Rsqu8tSLYCPfogKCmZBaQHise-vthHII/edit?usp=sharing
我也试过这个函数,结果显示在 cmets 中:
function datestuff() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var lastColumn = sheet.getLastColumn()
for(i = 1; i < lastColumn; i++){
var range = sheet.getRange(1, i);
var data = range.getValue();
Logger.log(data) // results are 20/3/2021, 19/3/21 etc. a mixture of dd/mm/yyyy and dd/mm/yy
dateValue = new Date(data)
Logger.log(dateValue) // results are all Wed Dec 31 19:00:00 GMT-05:00 1969, Wed Dec 31 19:00:00 GMT-05:00 1969
}
}
【问题讨论】:
-
可能不是约会对象。它们可能是字符串
-
我敢打赌就是这样。
标签: google-apps-script number-formatting