尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Git XL 使用详解:如何追踪 Excel VBA 代码的每一行变更

Git XL 使用详解:如何追踪 Excel VBA 代码的每一行变更 Git XL 使用详解如何追踪 Excel VBA 代码的每一行变更【免费下载链接】git-xlGit extension: Makes git-diff work for VBA in Excel workbooks (xls* file types)项目地址: https://gitcode.com/gh_mirrors/gi/git-xlGit XL 是一款开源的 Git 命令行扩展让git diff能够直接解析 Excel 工作簿中的 VBA 宏代码。它无需打开 Excel 即可读取工作簿文件帮助你像追踪普通源代码一样精确追踪 Excel VBA 代码的每一行变更。Git XL 解决了什么问题如果你把 Excel 文件放进 Git 仓库运行git diff时只会得到一行冷冰冰的提示Binary files a/Book1.xlsm and b/Book1.xlsm differ对维护 VBA 宏的开发者来说这几乎等于没有信息——到底是哪个模块、哪一行被改了改之前是什么Git XL 正是为解决这个痛点而生安装之后Git 就能把 Excel 里的 VBA 代码当作普通源码文件来对比直接输出逐行的增删内容。✨支持哪些 Excel 文件格式Git XL 覆盖了常见的 9 种 Excel 文件格式主流场景基本全覆盖格式说明xls/xltExcel 97-2003 工作簿 / 模板xla/xlam加载项 / 启用宏的加载项xlsx/xlsmExcel 2007 工作簿 / 启用宏的工作簿xlsb二进制格式工作簿xltx/xltm模板 / 启用宏的模板这些扩展名在 src/cli.py 中以FILE_EXTENSIONS常量统一定义。Git XL 安装教程全局与本地两种模式Git XL 使用 Python 编写Windows 平台提供预编译的二进制安装程序安装完成后再做一步 Git 配置即可。️全局安装每台机器一次先通过 Windows 二进制安装程序安装 Git XL然后在命令行执行git xl install这条命令会把 Excel diff 器注册到全局 Git 配置中之后所有仓库都能对 Excel 文件做 VBA 级对比。按仓库本地安装如果只想在某个仓库生效在仓库根目录下执行git xl install --local配置将写入该仓库自己的.gitattributes和.gitignore不影响其他项目。安装过程实际做了什么Git XL 的安装非常克制一共只改三处配置Git 配置注册diff.xl.command指向git-xl-diff.exe差异器.gitattributes为 9 种 Excel 格式写入*.xls diffxl等规则告诉 Git 这类文件请用 xl 差异器.gitignore写入~$*.xls等规则自动忽略 Excel 打开文件时生成的临时锁文件~$开头的文件不该被提交相关逻辑可以在 src/cli.py 的Installer类中阅读到安装/卸载行为也有对应的单元测试 src/tests/test_cli.py 保障。实战第一次查看 Excel VBA 代码差异配置完成后对包含 VBA 代码的工作簿运行git diff输出会是这样diff --xl a/Book1.xlsb b/Book1.xlsb --- a/Book1.xlsb/VBA/Module/Module1 b/Book1.xlsb/VBA/Module/Module1 -1,4 1,4 Option Explicit Public Function Version() As String - Version v1.0 Version v1.1 End Function 一目了然Module1模块中版本号从v1.0改成了v1.1。在 Windows 终端中新增行会以绿色、删除行以红色高亮显示由 colorama 实现如果新增或删除了整个 VBA 模块diff 会完整展示该模块的全部代码。Git XL 工作原理简介Git XL 的差异器git-xl-diff.exe的核心实现只有两个文件值得了解一下src/diff.py差异器本体。它利用 oletools 库中的VBA_Parser直接从工作簿文件中提取所有 VBA 宏完全不需要 Excel 环境再借助 Python 标准库difflib生成标准的 unified diff并逐模块处理新增、修改、删除三种情况src/cli.py命令行入口负责install/uninstall/env/version等命令以及 Git 配置的读写项目还在 src/tests/ 目录下附带了示例工作簿Book1.xlsb方便你搭建自己的测试场景。常用命令速查表命令作用git xl install全局安装注册 Excel diff 器git xl install --local仅在当前仓库本地安装git xl uninstall全局卸载撤销所有配置git xl uninstall --local仅撤销当前仓库的本地配置git xl env查看当前 Git XL 环境信息git xl version显示版本号git xl help查看完整帮助⚡ 安装和卸载都是可逆的uninstall会干净地移除diff.xl配置及.gitattributes/.gitignore中由 Git XL 写入的规则不会留下垃圾配置。如何从源码构建 Git XL如果你想自己编译 Windows 可执行文件过程也很直接克隆源码仓库https://gitcode.com/gh_mirrors/gi/git-xl创建 Python 虚拟环境按 requirements.txt 安装依赖colorama、oletools、pyinstaller在仓库根目录运行构建脚本 scripts/windows/build.bat由 PyInstaller 打包出 exeWindows 安装程序基于 Inno Setup 生成脚本位于 scripts/windows/inno-setup-git-xl-installer.iss详细构建说明可参考仓库中的 BUILDING.md。总结Git XL 用极小的成本解决了Excel VBA 代码无法在 Git 中做代码级对比这一长期痛点一条git xl install命令即可让git diff逐行展示 Excel 工作簿中 VBA 宏的每一次变更同时自动忽略 Excel 临时文件。如果你的团队在用 Git 管理含 VBA 的 Excel 模板、报表工具或加载项这个免费的开源扩展值得立即尝试。小知识Git XL 早期的名字叫 git-xltrail。【免费下载链接】git-xlGit extension: Makes git-diff work for VBA in Excel workbooks (xls* file types)项目地址: https://gitcode.com/gh_mirrors/gi/git-xl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表