【问题标题】:get cell value as customize date format from google sheet从谷歌表中获取单元格值作为自定义日期格式
【发布时间】:2020-05-12 04:28:03
【问题描述】:

我正在尝试将值“input1”传递给 HTML 对话框。看起来很简单。 . .感谢您的任何帮助。 代码.gs

function doGet() {
      var ss = SpreadsheetApp.openByUrl(url);//Spreadsheet url
      var ws = ss.getSheetByName("Options");
   var tmp = HtmlService.createTemplateFromFile("page");
  tmp.input1 = ws.getRange("A2").getValues();//cell valve is 01-01-2020
   return tmp.evaluate();

}

page.html

<html>
<head>
</head>
<body>
<input  value="<?!= input1;?>" type="text" >
</body>
</html>

它工作完美,但从单元格日期格式中获取价值是“2020 年 1 月 1 日星期三 12:30:00 GMT+0530(印度标准时间)”,但我想要不同的格式,如“2020 年 1 月 1 日”

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    您可以使用Utilities.formatDate(date, timeZone, format) 格式化日期

    如果你不想硬编码时区,你可以使用

    var timeZone = Session.getScriptTimeZone();
    

    【讨论】:

    • 我尝试了上述方法,但没有从谷歌表中获取日期值。
    【解决方案2】:

    示例:

    function doGet() {
       var ss = SpreadsheetApp.openByUrl(url);//Spreadsheet url
       var timeZone = ss.getSpreadsheetTimeZone();
       var ws = ss.getSheetByName("Options");
       var tmp = HtmlService.createTemplateFromFile("page");
       var value = ws.getRange("A2").getValue();//cell valve is 01-01-2020
       tmp.input1 = Utilities.formatDate(value, timeZone,  "dd/MM/yyyy");
       return tmp.evaluate();
    }
    

    【讨论】:

    • 发生以下错误:异常:参数(字符串、字符串、字符串)与 Utilities.formatDate 的方法签名不匹配。 (第 31 行,文件“utils”)
    • 听起来value 是一个字符串,而不是日期对象。 A2 的内容是有效日期吗?您可以尝试使用 new Date(value); 将其解析为日期,或将表格 UI 中的相应单元格格式化为日期。
    猜你喜欢
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多