看账相关
批量生成小账套
根据原始财务数据批量生成标准小账套 Excel 文件,支持自定义列映射和 VBA 宏自动导入
视频教程
功能概述
批量生成小账套模块用于将原始财务数据(科目余额表、辅助科目余额表、序时账)批量导入到标准小账套模板中,自动执行 VBA 宏完成数据格式化。每个公司生成一个独立的 .xlsm 小账套文件。
注意: 本功能需要安装 Microsoft Excel,因为依赖 xlwings 调用 Excel VBA 宏。
配置文件
配置文件路径:input/批量生成小账套.xlsx,包含以下 Sheet:
文件储存 Sheet
| 单元格 | 参数 | 示例 | 说明 |
|---|---|---|---|
| B1 | 数据源文件夹路径 | /Users/nigo/audit/项目/原始数据 | 存放按公司分组的原始数据文件 |
| B2 | 输出文件夹路径 | /Users/nigo/audit/项目/小账套 | 生成的小账套文件保存位置 |
| B3 | 数据是否分区 | 是 或 否 | 「是」表示每个公司在独立子文件夹中;「否」表示所有文件在同一个文件夹 |
映射 Sheet(3 张)
配置文件包含三张映射 Sheet,用于定义原始数据列名到小账套标准字段的对应关系:
| Sheet 名称 | 对应数据表 |
|---|---|
科目余额表映射 | 科目余额表 |
辅助科目余额表映射 | 辅助科目余额表 |
序时账映射 | 序时账 |
每张映射 Sheet 的填写方式:
| 行/列 | 内容 |
|---|---|
| 第 1 行(A 列起) | 原始数据的表头名称(从原始 Excel 复制粘贴) |
| 第 2 行(A 列起) | 下拉选择对应的小账套标准字段名称,不需要的字段留空 |
| B5 单元格 | 数据起始行号(默认为 2,即从第 2 行开始读取数据) |
映射 Sheet 示例
以科目余额表映射为例:
| 列号 | 第 1 行(原始表头) | 第 2 行(小账套字段) |
|---|---|---|
| A | 科目代码 | 科目代码 |
| B | 科目名称 | 科目名称 |
| C | 期初余额 | 期初余额 |
| D | 借方金额 | 借方金额 |
| E | 贷方金额 | 贷方金额 |
| F | 期末余额 | 期末余额 |
操作步骤
1. 准备原始数据
按公司名称创建文件夹,每个文件夹下放置三张表的数据文件:
数据源文件夹/
├── 公司A/
│ ├── 公司A-科目余额表.xlsx
│ ├── 公司A-科目辅助余额表.xlsx (非必需)
│ └── 公司A-序时账.xlsx
├── 公司B/
│ ├── 公司B-科目余额表.xlsx
│ ├── 公司B-科目辅助余额表.xlsx
│ └── 公司B-序时账.xlsx注意: 文件命名必须遵循
公司名-表名.xlsx的格式。支持.xlsx、.xls、.xlsm三种扩展名。若文件名不匹配,程序将跳过该表的导入。
2. 编辑配置文件
- 打开
input/批量生成小账套.xlsx - 在「文件储存」Sheet 中填写数据源路径、输出路径、是否分区
- 在三张映射 Sheet 中分别填写列映射关系
3. 运行
- 在工具箱中点击「填写数据」选择配置文件
- 点击「运行」开始批量处理
- 程序会依次处理每个公司,显示进度和结果
处理流程
对每个公司执行以下步骤:
- 复制小账套模板文件
input/小账套-模板.xlsm到输出目录,重命名为{公司名}-小账套.xlsm - 在新纪元后端启动独立的 Excel 实例(不可见,禁用警告弹窗)
- 按顺序导入三张表数据:
- 执行导入宏将数据写入对应 Sheet
- 执行格式化宏(
Import.Worksheet_BeforeDoubleClick)处理数据格式 - 将映射表中的列标题写入「导入数据」Sheet
- 保存并关闭工作簿
输出结果
| 输出 | 路径 |
|---|---|
| 小账套文件 | {输出文件夹}/{公司名}-小账套.xlsm |
每个公司生成一个独立的小账套 .xlsm 文件,可直接用 Excel 打开使用。
执行摘要
程序运行结束后会显示执行摘要:
- 总耗时
- 成功数量和失败数量
- 失败公司列表(如有)
- 生成文件的保存路径
常见问题
- 「找不到数据文件」:检查文件命名是否为
公司名-科目余额表.xlsx格式,注意区分「辅助科目余额表」和「科目辅助余额表」 - 「模板文件不存在」:确保
input/小账套-模板.xlsm文件存在 - Excel 进程残留:程序会在 finally 块中自动关闭启动的 Excel 实例,即使处理出错也会清理
注意: 如果不需要辅助科目余额表,可以不放置对应文件,程序会自动跳过并继续处理其他表。