从电子表格中提取日期时,getValue格式设置已关闭

时间:2014-01-28 17:23:27

标签: google-apps-script

我正在使用脚本将电子表格转换为PDF格式。

要定义PDF的标题,我从几个特定单元格中提取数据,其中一个单元格包含日期。问题是,日期在标题中以长格式出现。这是我的一大块代码:

  var ss = SpreadsheetApp.openById("XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); //       Opens spreadsheet to pull name from, by ID.
  var sheet = ss.getSheetByName('PurchaseOrderForm'); // Sets the sheet
  var ponumber = sheet.getRange("G3:G3"); // Define ranges/cells here + below.
  var date = sheet.getRange("G2:G2") // Custom cell to pull from
  var companyname = sheet.getRange("A11:A11") // These are then added together in line 30

  var name = ponumber.getValue()+" | "+date.getValue()+" | "+companyname.getValue()+".pdf"; // Output of the final PDF name. A composition of the above vars, plus some custom text.

除了日期部分之外,这几乎可以根据需要创建PDF名称。这是我得到的PDF标题的一个例子:

14PO051 | Tue Jan 28 2014 00:00:00 GMT-0000 (GMT) | Micronclean.pdf

日期出来了,但不是我想要/需要的格式。在电子表格中,日期单元格G2的格式为DD / MM / YY。我需要这样的东西才能出现在我的标题中,否则它太长了没有任何用处。

如果有人知道如何将其降至DD / MM / YY或同等水平,我将不胜感激!

一种解决方法是不对日期进行格式化,只需将它们手动输入电子表格即可。我希望不会那样,我的同事们不必整理出来。

2 个答案:

答案 0 :(得分:2)

var date = Utilities.formatDate(sheet.getRange("G2:G2").getValue(), ss.getSpreadsheetTimeZone(), "dd/MM/YY");  

答案 1 :(得分:1)

要从表单中获取值(使用表单格式),请使用getDisplayValue或getDisplayValues

https://developers.google.com/apps-script/reference/spreadsheet/range#getdisplayvalues

(如果可能,只要有1个以上的单元格,就可以使用复数功能;批处理操作更快!)