Google Sheets数据复制时为指定日期增加7天的实现求助
给Google Sheets日期增加7天的实现方案
你需要给valueRange[17]对应的日期加7天,核心是利用JavaScript的Date对象处理——Google Sheets里的日期在Apps Script中会被解析为Date类型,直接通过毫秒数计算即可实现天数累加。
修改后的完整代码
function GENERAL() { var Cop = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("GO"); var LP = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("0_Test-LISTE PROJETS"); var values = LP.getRange('A4:V' + LP.getLastRow()).getValues(); // 定义日期加天的辅助函数 function addDays(date, days) { if (!(date instanceof Date)) return date; // 如果不是日期类型,直接返回原内容 return new Date(date.getTime() + days * 24 * 60 * 60 * 1000); } var res = values.flatMap(valueRange => [ [valueRange[5], valueRange[7], valueRange[9], valueRange[16], valueRange[20], 'duréé projet' /**color red*/],//project lenght [valueRange[5], valueRange[7], valueRange[9], valueRange[16], valueRange[17], 'phase de conception'/**color BLUE*/],//research lenght [valueRange[5], valueRange[7], valueRange[9], valueRange[17], addDays(valueRange[17],7) , 'attente retour BAT'/**color white*/],//waiting for client [valueRange[5], valueRange[7], valueRange[9], addDays(valueRange[17],7), valueRange[19], 'phase de fabrication'/**color green*/],//production time [valueRange[5], valueRange[7], valueRange[9], valueRange[19], valueRange[20], 'phase installation'/**color purple*/]//installation on site ] ); Cop.getRange(2, 1, res.length, res[0].length).setValues(res); }
关键说明
- 新增
addDays辅助函数:专门处理日期累加,同时做了类型判断,避免非日期内容出错 - 把你标注的两处待修改的
valueRange[17]替换成addDays(valueRange[17],7),直接得到加7天后的日期对象 - 该方法会保留原日期的时间部分(如果有的话),若需要统一为当天0点,可在函数内额外处理
内容的提问来源于stack exchange,提问作者antho2B
相关产品推荐
相关产品推荐

