# excel2ppt **Repository Path**: frankliugang/excel2ppt ## Basic Information - **Project Name**: excel2ppt - **Description**: excel2ppt - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-05 - **Last Updated**: 2026-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Excel to PPT Batch Generator (VBA) 这是一个基于 VBA 开发的自动化工具,用于根据 Excel 数据批量、动态地生成 PowerPoint (PPT) 演示文稿。该工具支持跨平台(Windows / Mac)运行,采用面向对象 (OOP) 的架构设计,具有极高的可维护性和扩展性。 ## 🌟 核心特性 - **跨平台兼容**:完美支持 Windows 和 Mac 系统的 Excel/PPT 环境,自动处理路径与系统差异。 - **面向对象架构**:摒弃传统 VBA 面条式代码,采用标准的面向对象包结构(Models, Services, Core, Entry)。 - **动态数据映射**:自动读取 Excel 表头与 PPT 变量,支持纯文本 (`{{text}}`) 和图表 (`{{chart}}`) 等多种数据类型的动态渲染。 - **一键热更新 (Hot-Reload)**:自带 `modAutoInstall` 工具,可一键将源码目录中的模块更新到 Excel 工作簿中,极大提升开发和调试效率。 - **性能与稳定性**:内置性能监控器(Performance Monitor),确保大批量生成时不卡死、不内存泄漏。 ## 📂 目录结构 项目采用了类似 Java Package 的结构组织,并且包含了一些特定的工作目录: ```text . ├── README.md # 项目说明文档 ├── .trae/ # 架构设计文档及初始设计图保存目录 ├── .vscode/ # VS Code 配置文件(包含 GBK 编码设置,防止 VBA 中文乱码) ├── excel/ # 存放输入数据的 Excel 工作簿(如 data3.xlsx) ├── ppt/ # 生成后的 PPT 成品存放目录(输出目录) ├── tool/ │ └── modAutoInstall.bas # 一键热更新安装工具(核心入口),包含 PPT 模板 (template.pptx) └── vba_src/ # VBA 源代码目录 ├── Models/ # 数据模型 / 实体类 │ ├── clsFieldMap.cls # 字段映射规则实体 │ └── clsShopData.cls # 店铺数据实体 ├── Services/ # 核心业务 / PPT操作服务 │ ├── IPPTService.cls # PPT 服务接口 │ ├── clsWinPPTService.cls # Windows PPT 实现 │ ├── clsMacPPTService.cls # Mac PPT 实现 │ └── clsTemplateRenderer.cls # 模板渲染与图表/文本替换服务 ├── Core/ # 系统引擎 / 基础框架 │ ├── clsConfigManager.cls # 全局配置管理(路径配置) │ ├── clsDataRepository.cls # 数据仓储层(数据读取与映射) │ ├── clsOrchestrator.cls # 总调度器 │ └── clsPerformanceMonitor.cls # 性能监控器 └── Entry/ # 入口点 └── modMain.bas # 宏运行主入口(GeneratePPTs) ``` ## 🚀 如何使用 ### 1. 准备数据和模板 1. 将你的 Excel 数据文件放在 `excel/` 文件夹中。**第一行**为表头(例如:店面名称,销售额一月)。 2. **第二行**为对应的 PPT 变量名(必须以双大括号包裹,例如:`{{shopName}}`)。 - **文本替换**:直接写 `{{变量名}}`。 - **图表替换**:变量名必须包含 `chart` 或 `图表` 关键字(例如:`{{Chart_Sale}}`),多列相同的图表变量会自动合并为图表数据系列。 3. 将你的 PPT 模板放在 `tool/` 文件夹中(或在代码中指定路径),在需要替换的文本框或图表标题/名称中填入对应的变量名。生成后的文件会自动保存在 `ppt/` 文件夹中。 ### 2. 导入 VBA 代码 1. 打开 Excel 数据文件,按 `Option + F11` (Mac) 或 `Alt + F11` (Windows) 打开 VBA 编辑器。 2. 将 `tool/modAutoInstall.bas` 文件的内容复制并新建一个模块(或直接导入该文件)。 3. 运行宏 `ImportVBAFiles`,程序会自动扫描 `vba_src` 目录下的所有分类文件夹,并将代码一键导入到你的 Excel 中。 ### 3. 配置路径 默认情况下,代码会自动推导相对路径。如果需要自定义,可以在 VBA 编辑器中打开 `clsConfigManager` 类,修改顶部的常量配置: ```vba Private Const CUSTOM_TEMPLATE_PATH As String = "" Private Const CUSTOM_OUTPUT_DIR As String = "" ``` ### 4. 运行生成 在 Excel 中点击运行 `GeneratePPTs` 宏,程序将自动读取数据、打开模板并批量生成 PPT 文件。 ## 💡 使用技巧与排错 - **Mac 权限问题**:在 Mac 上首次运行时,如果提示权限被拒绝,请确保 Excel 拥有“完全磁盘访问权限”(Full Disk Access)。 - **图表生成只显示一个柱子**:请确保 Excel 第二行中,属于同一个图表的数据列(如一月、二月、三月)使用的是**完全相同**的变量名(例如都叫 `{{Chart_Sale}}`)。系统会自动将它们收集并填充到图表的连续数据行中。 - **模板文本没有被替换**:请检查 PPT 中的变量名大小写是否与 Excel 中一致(代码已支持不区分大小写,但最好保持一致),并且确保变量没有被拆分成多个不同的文本样式。 - **代码乱码**:如果使用外部编辑器修改了 `.cls` 或 `.bas` 文件,请确保文件编码为 `GBK` 且换行符为 `CRLF` (Windows 格式),否则导入 Excel 时可能会出现中文乱码或 `VERSION 1.0 CLASS` 的编译错误。