You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets转PDF日期格式错误,如何设置仅显示MM/DD/YYYY格式?

问题原因

Google Apps Script的getValues()方法读取单元格内容时,会自动将表格中存储的日期类型值转换为JavaScript原生Date对象,直接调用替换方法时会默认输出完整的GMT格式时间字符串,而非表格中设置的MM/DD/YY显示格式。

最优修复方案

将读取行数据和表头的方法从getValues()替换为getDisplayValues(),该方法会直接提取单元格中可见的格式化文本内容,完全匹配你在Google Sheet中看到的日期显示效果,不需要额外创建新日期,符合你的需求。

修改后完整代码
function onOpen (){
  SpreadsheetApp.getUi().createMenu('Create PDF').addItem('Create PDF','createPDF').addToUi()
}

function createPDF(){
  let copyFile = DriveApp.getFileById('[*google doc唯一链接已移除*]').makeCopy(),
      copyID = copyFile.getId(),
      copyDoc = DocumentApp.openById(copyID),
      copyBody = copyDoc.getBody()

  let activeSheet = SpreadsheetApp.getActiveSheet(),
      numOfCol = activeSheet.getLastColumn(),
      activeRowIndex = activeSheet.getActiveRange().getRowIndex(),
      // 替换getValues为getDisplayValues
      activeRow = activeSheet.getRange(activeRowIndex, 1,1,numOfCol).getDisplayValues(),
      headerRow = activeSheet.getRange(1,1,1,numOfCol).getDisplayValues(),
      columnIndex = 0

  for (; columnIndex < headerRow[0].length; columnIndex++){
    copyBody.replaceText('%' + headerRow[0][columnIndex] + '%',activeRow[0][columnIndex])
  }

  copyDoc.saveAndClose()
  let newFile = DriveApp.createFile(copyDoc.getAs('Application/PDF'))
  newFile.setName(activeRow[0][2]+ ', ' + activeRow[0][3] + ', ' + activeRow[0][4] +' (客户报价页)')
  copyFile.setTrashed(true)
  SpreadsheetApp.getUi().alert('PDF已生成到你的云盘')
}

备选方案(仅当你需要保留其他列原始数值类型时使用):
在循环替换时判断值类型,如果是日期就用工具类按表格时区格式化:

for (; columnIndex < headerRow[0].length; columnIndex++){
  let cellValue = activeRow[0][columnIndex]
  if(cellValue instanceof Date) {
    // 对应你表格的MM/DD/YY格式
    cellValue = Utilities.formatDate(cellValue, SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone(), "MM/dd/yy")
  }
  copyBody.replaceText('%' + headerRow[0][columnIndex] + '%', cellValue)
}

内容的提问来源于stack exchange,提问作者Jon Oneill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:54:04