gpt4 book ai didi

javascript - Google 工作表日期由 toString() 存储为字符串,在写回单元格时不会被识别为日期?

转载 作者:行者123 更新时间:2023-11-30 19:11:25 26 4
gpt4 key购买 nike

我有一张每天添加数千个值的工作表。为了保持小而灵活,它定期将数据行作为逗号分隔值存储在单独的工作表上。我在所有单元格上使用 toString() 遍历每一行。

当检索所需数据并将其重新打印到新工作表时,工作表不会将字符串识别为日期。例如2019 年 3 月 29 日星期五 13:45:06 GMT-0700(PDT)

我的解决方法是在检索字符串时对其进行切片,我只是想知道为什么他们不将标准日期字符串识别为日期。

function compressData() {
var sheet = SpreadsheetApp.getActiveSheet();
var arr = sheet.getRange(1,1,2,2).getValues();
var arrNew = [];
var arrRow =[];
var arrExpanded;

for (var i in arr) {
for (var x in arr[i]) {
arrRow.push(arr[x][i]);
}
arrNew.push([arrRow[i].toString()]);
}
// stores each row of the original array as a
// comma separated string in a new array

sheet.getRange(1, 3, arrNew.length, arrNew[0].length).setValues(arrNew);
// writes the new array to a new range
}

function expandData(){
// prints the arrays onto a new range and the new date
// cell isn't recognized as a date

var arrExpanded = [];
var sheet = SpreadsheetApp.getActiveSheet();
var arrCompressed = sheet.getRange(1,3,2,1).getValues();

for (var i in arrCompressed) {
var arrTemp = arrCompressed.toString().split(',');
arrExpanded.push(arrTemp);
}
// rebuilds the 2d array

sheet.getRange(1, 4, arrExpanded.length, arrExpanded[0].length).setValues(arrExpanded);
}

最佳答案

您从字符串中提取日期值,并且想知道为什么 Google 表格无法将标准日期字符串识别为日期。

原因是您在屏幕上看到的日期实际上是一个数字,milliseconds from the Unix epoch .它只是被格式化显示,因此它“看起来像”一个由文本组成的日期。

要将日期字符串转换为 Google 表格将识别为日期的值,您需要对其进行转换。下面的代码提供了一个简单的例子:

在下面的屏幕截图中,Cell B1 中的值是一个字符串;该值是单元格 C1 是日期值。注意单元格 C5 中显示的实际数据值(数字)(此单元格的格式为“数字”);


function so5842277201() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetname = "Sheet1";
var sheet = ss.getSheetByName(sheetname);

var datestring = sheet.getRange("A1").getValue();
Logger.log(datestring);

var date01 = new Date(datestring);
Logger.log(date01);
var date02 = Utilities.formatDate(date01,"GMT-7", "EEE MMM d yyyy HH:mm:ss");
var newdaterange = sheet.getRange("C1");
newdaterange.setValue(date02);
}

截图

enter image description here

关于javascript - Google 工作表日期由 toString() 存储为字符串,在写回单元格时不会被识别为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58422772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com