Google表格脚本中的Javascript:使用setNumberFormat的帮助

时间:2018-02-09 12:30:52

标签: javascript google-sheets spreadsheet google-sheets-api

希望这对你来说是一个简单的问题。我根本没有编码知识。但是,在Google表格中使用以下脚本来抓取来自其他工作表的更改数据并每天记录,随后附加。不记得我在哪里找到了剧本 - 如果我做了,我会回去询问它的创作者。它一直很好;唯一的事情是我必须每天手动复制粘贴我的首选日期格式。所以我希望脚本以“dd / MM / yyyy”格式打印日期(同时在单元格内保留小时和分钟数据)。我一直在网上阅读和搜索,并进行了多年的实验,但无法弄清楚。这是基本代码:

function recordHistory() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("History");
  var source = sheet.getRange("A2:C2");
  var values = source.getValues();
  values[0][0] = new Date();
  sheet.appendRow(values[0]);
};

我尝试将setnumberformat放在不同的地方,几乎总是会出错。在我看到的其他例子的启发下,也许我最好的尝试就是添加这些新线:

function recordHistory() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("History");
  var source = sheet.getRange("A2:C2");
  var values = source.getValues();
  values[0][0] = new Date();
  sheet.appendRow(values[0]);
  var cell = SpreadsheetApp.getActiveSheet().getRange(2, 1, 979);
  cell.setNumberFormat("dd/MM/yyyy");
};

我希望这会在追加新数据后格式化整个日期行(行A)。可能是一个笨重的解决方案,即使它工作,但它没有。到目前为止,这是我唯一的尝试,不会返回错误!那么,耶?但它不会改变日期格式。所以我放弃了。有任何想法吗?非常感谢

1 个答案:

答案 0 :(得分:0)

指定特定单元格的格式

var cell = sheet.getRange("A2");
cell.setNumberFormat("dd/MM/yyyy");

指定一系列单元格的格式

var cells = sheet.getRange("A2:C2");
cells.setNumberFormat("dd/MM/yyyy");

请参阅Rangeformats的文档。