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

使用ExcelScript循环复制MASTER表生成全年每日日期命名工作表方案

全年每日工作表批量生成Excel脚本实现

以下是调整后可直接运行的完整脚本,已经内置了全年日期遍历、自动累加日期、闰年判断逻辑,替换了原有的硬编码内容:

function main(workbook: ExcelScript.Workbook) {
    // 在这里指定你要生成工作表的目标年份
    const targetYear = 2022;
    // 获取MASTER模板工作表,运行前请先选中MASTER表即可正常调用
    const masterSheet = workbook.getActiveWorksheet();
    
    // 自动判断目标年份是否为闰年,确定全年总天数
    const isLeapYear = (targetYear % 4 === 0 && targetYear % 100 !== 0) || targetYear % 400 === 0;
    const totalDays = isLeapYear ? 366 : 365;
    
    // 初始化日期变量为目标年份的1月1日
    let currentDate = new Date(targetYear, 0, 1);
    
    // 循环遍历全年每一天
    for (let i = 0; i < totalDays; i++) {
        // 格式化日期为MM-DD-YYYY格式,和原逻辑保持一致,可按需修改格式
        const month = String(currentDate.getMonth() + 1).padStart(2, '0');
        const day = String(currentDate.getDate()).padStart(2, '0');
        const dateStr = `${month}-${day}-${targetYear}`;
        
        // 复制MASTER模板表,按原有逻辑从第3个位置开始依次排列
        const newSheet = masterSheet.copy(ExcelScript.WorksheetPositionType.before, masterSheet);
        newSheet.setPosition(i + 3);
        // 重命名工作表为当前日期
        newSheet.setName(dateStr);
        // 给指定单元格填入对应日期
        newSheet.getRange("Q1:T2").setValue(dateStr);
        
        // 日期自动加1天,进入下一轮循环
        currentDate.setDate(currentDate.getDate() + 1);
    }
}

使用注意事项

  • 运行脚本前请确保先选中MASTER模板工作表,避免复制错其他表内容
  • 如果需要调整日期格式(比如改为2022年1月1日),只需要修改dateStr的拼接规则即可
  • 生成365/366个工作表耗时较长,如果遇到运行超时,可以按月份拆分循环分批执行
  • 只需要修改代码顶部targetYear的数值,即可生成任意对应年份的全部工作表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:36:11