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

Posted

技术标签:

【中文标题】Google 表格脚本中的 Javascript:帮助使用 setNumberFormat【英文标题】:Javascript in Google Sheets script: help using setNumberFormat 【发布时间】:2018-02-09 12:30:52 【问题描述】:

希望这对你们来说是一个简单的问题。我根本没有编码知识。但是一直在使用 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】:

指定特定单元格的格式

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

指定单元格区域的格式

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

请参阅Range 和formats 的文档。

【讨论】:

完美!我也离得很近。显然误解了 getRange 的文档建议。非常感谢! 很高兴能提供帮助。请接受我的回答,以便为未来的读者解决问题。 :) 我假设这是赞成/反对票下方的绿色勾号。如果是这样,就完成了。也感谢元提示:)

以上是关于Google 表格脚本中的 Javascript:帮助使用 setNumberFormat的主要内容,如果未能解决你的问题,请参考以下文章

javascript Google表格的文本缩进脚本

Google Apps 脚本 - 将一行数据从一个电子表格移动到另一个电子表格

如何将客户端脚本调用移动到服务器? (Google云端硬盘电子表格Feed)

javascript Google Apps脚本的图表服务使用DataTable对象作为可视化和表格的源数据。有一个内置的方法tha

如何从 Google 电子表格中的 Google Apps 脚本自动更新“站点地图”功能?

从 Google 表格按钮调用脚本函数(写入 Google 驱动器中的 .gs 文件)