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

如何在Google Apps Script中引用Google Sheets含日期的三列

解决方案

要同时处理三列日期,你可以把需要处理的列索引存入一个数组,然后遍历这个数组对每一列执行日期格式化逻辑。另外把日期格式化的逻辑抽成独立函数,能让代码更简洁易维护。

修改后的代码如下:

function getRecords() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var recordsSheet = ss.getSheetByName("CrossTAB SAP");
  var recordsRange = recordsSheet.getDataRange();
  var recordsValues = recordsRange.getValues();  

  // 定义需要处理的列索引(从0开始计数,比如0=A列,1=B列,2=C列)
  var columnsToProcess = [0, 1, 2]; 

  // 抽取出日期格式化函数
  function formatDate(rawDate) {
    var data = new Date(rawDate);
    // 原代码的setDate(getDate())无实质作用,可按需保留或删除
    data.setDate(data.getDate());
    
    var d = data.getDate();
    var m = data.getMonth() + 1; // 修正:月份从0开始计数,加1才是实际月份
    var a = data.getFullYear();
    
    d = d < 10 ? "0" + d : d;
    m = m < 10 ? "0" + m : m;
    
    return d + "/" + m + "/" + a;
  }

  // 遍历每一行
  for(var i = 0; i < recordsValues.length; i++){          
    // 遍历需要处理的每一列
    columnsToProcess.forEach(function(colIndex) {
      if (recordsValues[i][colIndex]) { // 跳过空单元格,避免无效处理
        recordsValues[i][colIndex] = formatDate(recordsValues[i][colIndex]);
      }
    });
  }

  return recordsValues;
}

关键修改说明:

  • 用columnsToProcess数组存储目标列索引,后续新增列只需往数组添加索引,无需重复编写格式化逻辑
  • 抽离formatDate函数,简化代码结构,方便后续调整日期格式
  • 修正原代码bug:getMonth()返回0-11,原代码未加1会导致1月显示为00,现在已修复
  • 增加空单元格判断,避免处理无效数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:00:24