零基础档案报表培训落地指南:一键生成合规月度季度报表

档案报表培训落地工具配置

一、前期准备:获取并安装开源轻量级工具

1.1 工具选择与下载

本次培训使用的是Excel 365/2021+Python3.10.11+openpyxl3.1.2组合,全部免费且无需配置复杂服务器。

  • Python3.10.11下载地址:https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe(仅Windows 64位,32位需手动修改版本号)
  • openpyxl安装命令:pip install openpyxl==3.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

1.2 Python环境验证

安装完成后,打开Windows PowerShell(按Win+X,选择Windows PowerShell),依次输入以下命令,均返回对应数字/文字即成功:

  • python --version → 返回Python 3.10.11
  • pip --version → 返回pip版本及路径
  • python -c "import openpyxl; print(openpyxl.__version__)" → 返回3.1.2

二、基础数据模板建立:标准化档案录入表格

必须先建立固定列、固定表头、不合并单元格的“档案原始数据.xlsx”,否则后续脚本无法运行。

2.1 模板列与内容要求

打开Excel,新建空白工作簿,重命名为“档案原始数据.xlsx”,保存到D盘根目录,第一行按顺序设置以下表头:

  • 档案编号:文本格式,如D202405001(年份+月份+3位流水号)
  • 档案类别:文本格式,仅允许填【文书档案、科技档案、会计档案、人事档案、声像档案】5类
  • 归档日期:日期格式,如2024/5/20
  • 保管期限:文本格式,仅允许填【永久、30年、10年、5年】4类
  • 保管地点:文本格式,仅允许填【档案柜1-12号、密集架1-6列】18类
  • 责任人:文本格式,自由填写

2.2 数据验证配置(防错录入)

选中“档案类别”B列→点击数据→数据验证→设置

  • 允许:序列
  • 来源:文书档案,科技档案,会计档案,人事档案,声像档案(逗号用英文半角)
  • 勾选【提供下拉箭头】

同理,为“保管期限”D列、“保管地点”E列配置对应数据验证(来源格式同上)。

三、生成脚本编写:一键统计并生成合规报表

零基础档案报表培训落地指南:一键生成合规月度季度报表

在D盘根目录新建记事本,粘贴以下完整代码,重命名为“档案报表生成.py”,注意后缀名必须从.txt改为.py。

```python import openpyxl from openpyxl.styles import Font, Alignment, PatternFill, Border, Side from datetime import datetime, date 1. 读取原始数据 wb_raw = openpyxl.load_workbook('D:/档案原始数据.xlsx') ws_raw = wb_raw.active raw_data = list(ws_raw.iter_rows(min_row=2, values_only=True)) 跳过表头 total_count = len(raw_data) 2. 获取当前日期(自动生成报表周期) today = date.today() current_month = today.strftime('%Y年%m月') current_quarter = f"{today.year}年第{(today.month-1)//3 + 1}季度" 3. 创建月度报表 wb_report = openpyxl.Workbook() ws_month = wb_report.active ws_month.title = f'{current_month}档案报表' 月度报表表头 month_header = ['档案类别', '本月新增', '永久', '30年', '10年', '5年', '密集架', '档案柜'] ws_month.append(month_header) 月度报表统计 month_stats = {cat: [0]6 for cat in ['文书档案', '科技档案', '会计档案', '人事档案', '声像档案']} for row in raw_data: if not row[0]: continue 跳过空行 筛选本月数据 if isinstance(row[2], date) and row[2].year == today.year and row[2].month == today.month: cat = row[1] if cat not in month_stats: continue 类别+1 month_stats[cat][0] += 1 期限统计 if row[3] == '永久': month_stats[cat][1] += 1 elif row[3] == '30年': month_stats[cat][2] += 1 elif row[3] == '10年': month_stats[cat][3] += 1 elif row[3] == '5年': month_stats[cat][4] += 1 地点统计 if '密集架' in row[4]: month_stats[cat][5] += 1 elif '档案柜' in row[4]: month_stats[cat][5] = month_stats[cat][5] 防止覆盖,实际已有对应位 补上月度合计 month_total = [0]6 for cat in month_stats: for i in range(6): month_total[i] += month_stats[cat][i] 写入月度数据 for cat, data in month_stats.items(): ws_month.append([cat] + data) ws_month.append(['合计'] + month_total) 4. 创建季度报表 ws_quarter = wb_report.create_sheet(title=f'{current_quarter}档案报表') 季度报表表头同月度 ws_quarter.append(month_header) 季度报表统计 quarter_start_month = (today.month-1)//3 3 + 1 quarter_stats = {cat: [0]6 for cat in ['文书档案', '科技档案', '会计档案', '人事档案', '声像档案']} for row in raw_data: if not row[0]: continue if isinstance(row[2], date) and row[2].year == today.year and quarter_start_month <= row[2].month <= today.month: cat = row[1] if cat not in quarter_stats: continue quarter_stats[cat][0] += 1 if row[3] == '永久': quarter_stats[cat][1] += 1 elif row[3] == '30年': quarter_stats[cat][2] += 1 elif row[3] == '10年': quarter_stats[cat][3] += 1 elif row[3] == '5年': quarter_stats[cat][4] += 1 if '密集架' in row[4]: quarter_stats[cat][5] += 1 补上个季度合计 quarter_total = [0]6 for cat in quarter_stats: for i in range(6): quarter_total[i] += quarter_stats[cat][i] 写入季度数据 for cat, data in quarter_stats.items(): ws_quarter.append([cat] + data) ws_quarter.append(['合计'] + quarter_total) 5. 统一美化报表(适配A4打印、居中对齐、表头加粗标色) def format_sheet(ws): 设置列宽 ws.column_dimensions['A'].width = 12 for col in ['B', 'C', 'D', 'E', 'F', 'G', 'H']: ws.column_dimensions[col].width = 10 设置行高 for row in ws.iter_rows(): ws.row_dimensions[row[0].row].height = 22 定义样式 header_fill = PatternFill(start_color='4472C4', end_color='4472C4', fill_type='solid') header_font = Font(bold=True, color='FFFFFF', size=12) header_alignment = Alignment(horizontal='center', vertical='center') cell_alignment = Alignment(horizontal='center', vertical='center') thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin')) 应用表头样式 for cell in ws[1]: cell.fill = header_fill cell.font = header_font cell.alignment = header_alignment cell.border = thin_border 应用单元格样式 for row in ws.iter_rows(min_row=2): for cell in row: cell.alignment = cell_alignment cell.border = thin_border cell.font = Font(size=11) 合计行标粗 last_row = ws.max_row for cell in ws[last_row]: cell.font = Font(bold=True, size=11) 执行美化 format_sheet(ws_month) format_sheet(ws_quarter) 6. 保存报表 report_filename = f'D:/档案报表_{today.strftime("%Y%m%d_%H%M%S")}.xlsx' wb_report.save(report_filename) print(f'✅ 合规报表已生成!文件路径:{report_filename}') ```

四、实操培训:从录入到生成的全流程演示

4.1 档案数据录入

打开D盘根目录的“档案原始数据.xlsx”,按以下步骤录入测试数据:

  • 档案编号:逐行递增填写D202405001-D202405015
  • 档案类别:点击B列下拉箭头,随机选择5类
  • 归档日期:2024/4/20-2024/5/20随机填写(区分上月/本月/季度数据)
  • 保管期限:点击D列下拉箭头,随机选择4类
  • 保管地点:点击E列下拉箭头,随机选择18类
  • 责任人:张三、李四、王五、赵六随机填写

4.2 执行生成脚本

有两种执行方式,任选其一:

  • 双击D盘根目录的“档案报表生成.py”(需确保安装Python时勾选了【Add Python 3.10 to PATH】,没勾选的选第二种)
  • 打开Windows PowerShell,输入cd D:\→回车,再输入python 档案报表生成.py→回车

看到PowerShell输出“✅ 合规报表已生成!文件路径:XXX”即成功。

4.3 检查与打印报表

打开生成的带时间戳的报表文件,确认:

  • 月度/季度数据统计正确(抽查文书档案本月新增数)
  • 表头样式符合要求(蓝色背景、白色加粗文字、居中对齐)
  • 合计行标粗、所有单元格有边框、列宽适配A4横向打印(需手动调整Excel打印设置为横向)

五、培训后的维护与优化

5.1 日常数据维护

每次录入新档案后,仅需将档案数据追加到“档案原始数据.xlsx”的最后一行(不要插入中间行,空行不影响统计),无需修改其他内容。

5.2 自定义报表(按需修改代码)

如需修改统计维度(比如增加“本年累计”“责任人统计”),仅需修改代码中对应统计逻辑即可,不需要重新配置环境。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统