我正在使用脚本将电子表格转换为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或同等水平,我将不胜感激!
一种解决方法是不对日期进行格式化,只需将它们手动输入电子表格即可。我希望不会那样,我的同事们不必整理出来。
答案 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个以上的单元格,就可以使用复数功能;批处理操作更快!)