基本上我想有一个新的电子表格插入到细胞中的YYYY-MM-DD格式时,它是以纯文本创建。 麻烦的是,当插入的值被插入到新的工作表看起来为DD / MM / YYYY其是由在后台运行的其他程序不可读。
这是下面的代码:
function dateTest()
{
var template = SpreadsheetApp.openById('ABC------1234')
var test = template.getSheetByName('TEST');
var database = SpreadsheetApp.getActive().getSheetByName('DASHBOARD');
//start & endDates are in YYYY-MM-DD format in these cells
var startDate = database.getRange('A10').getValue();
var endDate = database.getRange('A11').getValue();
//The results come up as DD/MM/YYYY when they are set into TEST
//Formatted to YYYY-MM-DD has already been done
test.getRange('D1').setValue(startDate);
test.getRange('D2').setValue(endDate);
}
如果有必要,日期可能被分成YYYY +“ - ” +“MM” +“ - ” +“DD”,然后插入纯文本,但我无能,如何执行这一壮举。 任何建议将非常感谢。
它可以被清理,但这里的基本知识。
//start & endDates are in YYYY-MM-DD format in these cells
var startDate = database.getRange('A10').getValue();
var strStartDate = startDate.getFullYear() + "-" + (startDate.getMonth() + 1) + "-" + startDate.getDate();
var endDate = database.getRange('A11').getValue();
var strEndDate = endDate.getFullYear() + "-" + (endDate.getMonth() + 1) + "-" + endDate.getDate();
//The results come up as DD/MM/YYYY when they are set into TEST
//Formatted to YYYY-MM-DD has already been done
test.getRange('D1').setNumberFormat('@STRING@');
test.getRange('D1').setValue(strStartDate);
test.getRange('D2').setNumberFormat('@STRING@');
test.getRange('D2').setValue(strEndDate);
在谷歌电子表格,领先的撇号表示忽略格式。 因此,这个工程:
range.setValue("'2007-09-12");
可替代地,文本可以是报价和设置为“公式”:
range.setFormula('"2007-09-12"');
(请确保字符串包含双引号不是单引号 - Apps Script是JavaScript的,因此无论是支持的,但表格公式不理解单引号相同的方式。)
尝试这种解决方法:在片材手动设置的小区格式为“纯文本”,即不参与操作。 让我们把这种细胞J1。 现在调用之前:
test.getRange('D1').setValue(startDate);
test.getRange('D2').setValue(endDate);
这样做:
test.getRange('J1').copyFormatToRange(test,3,3,0,1); // This is D1 and D2
test.getRange('D1').setValue(startDate);
test.getRange('D2').setValue(endDate);
这应该让你对目标细胞明文格式。
这将重新格式化的日期,并将其设置为字符串:
var tz = ss.getSpreadsheetTimeZone();
var newDate = Utilities.formatDate(startDate, tz, 'yyyy-MM-dd'); // Requested format
s.getRange('D1').setValue("'" + newDate); // Set as string
文章来源: How to insert date into YYYY-MM-DD plain text into Google Spreadsheet with Apps Script