# Excel2PDFPlus **Repository Path**: edge006/excel2-pdfplus ## Basic Information - **Project Name**: Excel2PDFPlus - **Description**: 本工具是一个 Excel / WPS 的 VBA 宏插件,用于将多个工作簿(.xls, .xlsx, .wps, .et)批量转换为 PDF 文件,同时提供丰富的页面设置、智能打印区域优化、缓存加速等功能。 - **Primary Language**: Visual Basic - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2026-04-04 - **Last Updated**: 2026-04-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 批量转PDF工具宏 使用说明 ## 📌 简介 本工具是一个 Excel / WPS 的 VBA 宏插件,用于将多个工作簿(.xls, .xlsx, .wps, .et)批量转换为 PDF 文件,同时提供丰富的页面设置、智能打印区域优化、缓存加速等功能。 ## 🚀 主要功能 - 批量添加文件(支持拖拽或浏览) - 分析每个文件的原始页面属性(方向、纸张、缩放、页数) - 单独或批量设置页面方向(横/竖)和纸张(A3/A4) - 单独或批量设置打印缩放(整页/整列/整行) - 智能打印区域优化:根据内容自动计算最佳打印区域,避免空白页 - 自定义页边距、页眉页脚间距 - 支持忽略隐藏工作表 - 自动检测文件修改并重新分析 - 右键菜单快速操作(上移、下移、删除、单独设置等) - 双击“清空”按钮可清空缓存(300毫秒内连击两次) - 兼容 Microsoft Excel 和 WPS 表格(自动识别并切换相应驱动) ## 🛠️ 安装方法 1. 打开任意 Excel 或 WPS 文件,按 `Alt+F11` 打开 VBA 编辑器。 2. 在左侧工程资源管理器中,右键点击 `VBAProject`,选择“导入文件”,依次导入所有 `.txt` 代码文件(保存为 `.cls` 或 `.bas` 文件)。 - `clsFileInfo.cls`(类模块) - `modCompatibility.bas`(标准模块) - `modGlobalSettings.bas` - `modMain.bas` - `modMenuCommands.bas` - `modStart.bas` - `UserForm1.frm`(窗体) - `UserForm2.frm`(窗体) 3. 保存工作簿为“启用宏的工作簿”(.xlsm)。 4. 关闭 VBA 编辑器,回到工作表,按 `Alt+F8` 运行宏“批量转PDF工具宏”即可启动。 ## 📖 使用步骤 ### 1. 添加文件 - 点击“添加文件”按钮,选择要转换的文件(支持多选)。 - 或直接将文件拖拽到文件列表区域(仅 Excel 环境支持拖拽)。 ### 2. 页面分析(必须) - 点击“页面分析”按钮,工具会打开每个文件,读取原始方向、纸张、缩放,并估算页数。 - 分析后,文件列表会显示这些信息。 - 分析状态会记录在日志中,失败的文件会标记原因(如“打开失败”“读取属性失败”)。 ### 3. 设置页面选项(可选) - **批量设置**:使用界面上的两个下拉菜单,可快速将所有文件统一设为某种页面尺寸/缩放。 - **单独设置**:在文件列表上右键,选择“页面设置”或“缩放设置”,仅修改当前文件。 - **自定义页边距**:点击“选项设置”按钮,勾选“启用自定义页边距”,设置上/下/左/右、页眉/页脚间距(单位:厘米)。 ### 4. 智能打印区域优化(可选) - 在“选项设置”中开启“智能打印区域优化”,可勾选以下条件: - 包含文本或数字 - 包含公式 - 包含边框 - 包含背景色 - 工具会自动计算并设置打印区域,避免打印多余空白。同时可自动剔除隐藏行列、重置分页符。 ### 5. 转换 PDF - 点击“批量转PDF”按钮,工具会依次处理每个文件,将每个工作簿(按当前设置)导出为 PDF。 - PDF 文件保存在原文件所在文件夹,文件名格式:`原文件名[time=HH.MM.SS].pdf`(时间戳防止覆盖)。 - 转换过程中会显示进度日志。 ## ⚙️ 选项设置详解 点击“选项设置”按钮,可配置以下内容: ### 智能打印区域优化 - **总开关**:启用后,转换时会根据下方勾选的类型自动计算打印区域。 - **包含文本/数字**:将包含常量文本或数字的单元格纳入打印区域。 - **包含公式**:将包含公式的单元格纳入。 - **包含边框**:将含有边框的单元格纳入。 - **包含背景色**:将含有背景色的单元格纳入。 - **自动剔除隐藏行列**:在计算区域时忽略隐藏的行和列。 - **重置分页符**:设置打印区域后重置所有分页符。 - **多区域处理**:当存在多个不连续区域时的处理方式(自动合并/询问用户/保留原样)。 ### 页面设置 - **启用自定义页边距**:勾选后,转换时使用下方设置的页边距和页眉页脚间距;不勾选则保留原文件设置。 - **页边距**:上、下、左、右(厘米)。 - **页眉/页脚间距**:页眉和页脚距纸张边缘的距离(厘米)。 ### 环境选择 - **WPS 表格** / **Microsoft Excel**:根据当前使用的软件选择,确保打印机切换、页面刷新等操作兼容。 ### 其他选项 - **忽略隐藏工作表**:勾选后,隐藏工作表不参与分析、页数统计和 PDF 转换。 - **保留页眉页脚**:勾选后保留原文件的页眉页脚;取消则清空。 ## 🔧 高级技巧 - **双击“清空”按钮**:快速清空所有文件。若在 300 毫秒内连续双击,会清空所有缓存(强制下次重新分析),用于排查缓存问题。 - **右键菜单**:在文件列表上右键,可快速上移/下移、删除、单独设置页面或缩放,以及单独分析当前文件。 - **日志窗口**:所有操作记录都会显示在右侧日志区,便于追踪错误。 ## 🧩 注意事项 - 本工具仅支持 Windows 系统,需要安装 Microsoft Office 或 WPS。 - 转换 PDF 时,会自动切换至系统中的虚拟打印机(如 Microsoft Print to PDF),若未安装,可能无法生成 A3 页面。请确保打印机支持所需纸张尺寸。 - 由于 VBA 的限制,页数估算可能不完全准确,但通常能满足判断需求。 - 若文件较大或数量较多,分析过程可能较慢,请耐心等待。 - WPS 环境下拖拽添加文件功能可能不支持,请使用“添加文件”按钮。 ## 🐛 常见问题 **Q:为什么分析后有些文件显示“未设”?** A:可能是文件打开失败或读取属性时出错,请检查文件是否损坏或被其他程序占用。 **Q:转换后 PDF 纸张大小仍是 A4,不是 A3?** A:请确保系统中已安装支持 A3 的虚拟打印机(如 Microsoft Print to PDF),并且该打印机属性中已添加 A3 纸张。另外,在 Excel 环境下,工具已增加强制刷新机制,通常能正确应用 A3。 **Q:智能打印区域优化不起作用?** A:请检查总开关是否已开启,并根据需求勾选相应条件。若打印区域仍不对,可尝试取消“自动剔除隐藏行列”或调整多区域处理方式。 **Q:能否转换加密文件?** A:不能,工具需要以只读方式打开文件,加密文件会弹出密码框导致失败。 ## 📦 版本历史 - **v1.9.6**:新增双击清空缓存机制,优化 A3 纸张强制刷新,完善缓存构建逻辑,增加隐藏工作表选项,修复若干边界问题。 --- ## 🙏 致谢 本工具由本人反复打磨,各个小版本优化了10几次,旨在提升单元识别和打印转换效率。欢迎反馈问题和建议。