如何以实际日期格式获取值?
How can I getValue in actual date format?
我 运行 遇到了 getValue 及其在 Google 表格中返回的格式的问题。单元格中的值是 2/19/2019,格式为 M/dd/yyyy,但它正在返回 =2019 年 2 月 19 日星期二 00:00:00 GMT-0600 (CST)(附上问题的图片)。我很好奇如何让我尝试填充的单元格具有相同的格式并且看起来与 2/19/2019 相同。这是我目前正在处理的代码:
function fillDown() {
var ss = SpreadsheetApp.openById('spreadsheetId');
var sheet = ss.getSheetByName("spreadsheetName");
var originRange = sheet.getRange(sheet.getLastRow(), 1);
var targetRange = sheet.getRange(sheet.getLastRow()+1, 1)
var formula = originRange.getValue();
targetRange.activate();
sheet.getCurrentCell().setFormula(formula);
}
您似乎在尝试将 公式 设置为日期而不是单元格的 值。 getValue()
返回单元格的实际值,不是格式化版本。公式与这两者不同。如果要将日期设置为特定值并以特定方式显示,只需使用 setValue(date)
和 格式化 单元格。
var formula = originRange.getValue();
targetRange.activate();
// sheet.getCurrentCell().setFormula(formula); this results in the cell containing '=<date>'
sheet.getCurrentCell().setValue(date);
--> 确保格式化整列会适当显示。
综上所述,setFormula()
不等于设置格式。
你可以这样做:
function fillDown() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var originRange = sheet.getRange(sheet.getLastRow(), 1);
var targetRange = sheet.getRange(sheet.getLastRow()+1, 1)
var value = originRange.getValue();
var format = originRange.getNumberFormat()
targetRange.activate();
sheet.getCurrentCell().setValue(value);
sheet.getCurrentCell().setNumberFormat(format);
}
我 运行 遇到了 getValue 及其在 Google 表格中返回的格式的问题。单元格中的值是 2/19/2019,格式为 M/dd/yyyy,但它正在返回 =2019 年 2 月 19 日星期二 00:00:00 GMT-0600 (CST)(附上问题的图片)。我很好奇如何让我尝试填充的单元格具有相同的格式并且看起来与 2/19/2019 相同。这是我目前正在处理的代码:
function fillDown() {
var ss = SpreadsheetApp.openById('spreadsheetId');
var sheet = ss.getSheetByName("spreadsheetName");
var originRange = sheet.getRange(sheet.getLastRow(), 1);
var targetRange = sheet.getRange(sheet.getLastRow()+1, 1)
var formula = originRange.getValue();
targetRange.activate();
sheet.getCurrentCell().setFormula(formula);
}
您似乎在尝试将 公式 设置为日期而不是单元格的 值。 getValue()
返回单元格的实际值,不是格式化版本。公式与这两者不同。如果要将日期设置为特定值并以特定方式显示,只需使用 setValue(date)
和 格式化 单元格。
var formula = originRange.getValue();
targetRange.activate();
// sheet.getCurrentCell().setFormula(formula); this results in the cell containing '=<date>'
sheet.getCurrentCell().setValue(date);
--> 确保格式化整列会适当显示。
综上所述,setFormula()
不等于设置格式。
你可以这样做:
function fillDown() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var originRange = sheet.getRange(sheet.getLastRow(), 1);
var targetRange = sheet.getRange(sheet.getLastRow()+1, 1)
var value = originRange.getValue();
var format = originRange.getNumberFormat()
targetRange.activate();
sheet.getCurrentCell().setValue(value);
sheet.getCurrentCell().setNumberFormat(format);
}