# 周报文件生成 **Repository Path**: baOZe/weekly-report-file-generation ## Basic Information - **Project Name**: 周报文件生成 - **Description**: 根据国家法定节假日(联网获取),根据template,复制生成为当月周报文件列表,月初跨月直接丢弃,月底跨月直接合并。代码完全由AI生成。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-01 - **Last Updated**: 2025-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工作周期日报生成器 基于国家法定节假日安排自动生成工作周期日报文件的PowerShell脚本。 ## 📋 功能特性 - ✅ **智能节假日识别**:自动获取指定年份的国家法定节假日安排 - ✅ **工作周期划分**:根据连续工作日自动划分工作周期 - ✅ **跨月处理**:完美处理月末工作周期延伸到下个月的情况 - ✅ **模板复制**:基于template.xls模板生成Excel日报文件 - ✅ **目录管理**:自动创建年月目录结构进行文件归档 - ✅ **重复保护**:避免覆盖已存在的文件 ## 🚀 使用前准备 ### 1. 环境要求 - Windows PowerShell 5.0+ 或 PowerShell Core 6.0+ - 网络连接(用于获取节假日数据) ### 2. 必需文件 确保脚本运行目录下存在以下文件: ``` gen.ps1 # 主脚本文件 template.xls # Excel模板文件 ``` ## 💻 使用方法 ### 基本语法 ```powershell .\gen.ps1 [-Year <年份>] [-Month <月份>] ``` ### 参数说明 | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `-Year` | int | 当前年份 | 要处理的年份 | | `-Month` | int | 当前月份 | 要处理的月份(1-12) | ## 📖 使用示例 ### 生成当前月份的日报 ```powershell .\gen.ps1 ``` ### 生成指定年月的日报 ```powershell # 生成2025年1月的日报 .\gen.ps1 -Year 2025 -Month 1 # 生成2025年12月的日报 .\gen.ps1 -Year 2025 -Month 12 ``` ## 📁 生成的目录结构 脚本执行后会创建如下目录结构: ``` 日报/ ├── gen.ps1 ├── template.xls ├── README.md ├── 202501/ # 2025年1月目录 │ ├── 日报20250102-20250103.xls │ ├── 日报20250106-20250110.xls │ └── 日报20250113-20250117.xls ├── 202502/ # 2025年2月目录 │ ├── 日报20250203-20250207.xls │ └── 日报20250210-20250214.xls └── 202503/ # 2025年3月目录 ├── 日报20250303-20250307.xls └── 日报20250310-20250314.xls ``` ## 🔄 跨月处理规则 ### 月末延伸规则 - **月末工作周期延伸到下月**:计入当前月份 - 例:1月30日-2月3日的工作周期 → 归入1月份,文件在`202501/`目录 ### 月初延续规则 - **上月工作周期延续到本月初**:计入上个月份 - 例:1月30日-2月3日的工作周期 → 归入1月份,2月份从2月4日开始新周期 ### 跨月标识 跨月工作周期在生成时会显示 `(跨月工作周期)` 标识,便于识别。 ## 📝 文件命名规则 生成的Excel文件命名格式:`日报{开始日期}-{结束日期}.xls` **日期格式**:YYYYMMDD **示例**: - `日报20250106-20250110.xls`(2025年1月6日至10日工作周期) - `日报20250203-20250207.xls`(2025年2月3日至7日工作周期) ## ⚙️ 工作原理 1. **获取节假日数据**:从 `https://unpkg.com/holiday-calendar/data/CN/{Year}.json` 获取 2. **判断工作日**:结合法定节假日和调休安排确定工作日 3. **划分工作周期**:识别连续的工作日块,形成工作周期 4. **处理跨月**:智能处理月末延伸和月初延续的情况 5. **生成文件**:复制template.xls模板创建对应的日报文件 ## 🔧 节假日数据源 脚本使用 [holiday-calendar](https://github.com/NateScarlet/holiday-CN) 项目提供的中国法定节假日数据,包含: - ✅ 法定节假日 - ✅ 调休工作日 - ✅ 补班安排 - ✅ 实时更新 ## ⚠️ 注意事项 1. **网络要求**:首次运行需要网络连接获取节假日数据 2. **模板文件**:必须确保`template.xls`存在且格式正确 3. **文件保护**:脚本不会覆盖已存在的文件 4. **目录权限**:确保脚本有创建目录和文件的权限 5. **日期有效性**:仅支持有效的年份和月份参数 ## 🐛 故障排除 ### 常见问题 **Q: 提示"模板文件 template.xls 不存在"** A: 确保template.xls文件与gen.ps1在同一目录下 **Q: 提示"无法获取节假日数据"** A: 检查网络连接,确保能访问互联网 **Q: 生成的文件数量不对** A: 检查该月份的节假日安排,确认工作周期划分是否正确 **Q: 跨月处理异常** A: 确认节假日数据完整,特别是月末月初的特殊安排 ## 📄 许可证 本项目采用 MIT 许可证,详见 LICENSE 文件。