用几行 XML 给 Office 文档加上自己的选项卡
用几行 XML 给 Office 文档加上自己的选项卡【免费下载链接】office-custom-ui-editorStandalone tool to edit custom UI part of Office open document file format项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editorOffice Custom UI Editor 是微软开源的 Windows 工具打开一个 .docx、.xlsx 或 .pptx直接编辑藏在文档内部的 Custom UI XML加上自己的选项卡、按钮和右键菜单项用内置 schema 校验后存回文档。不用写加载项不用碰 C#只写几行 XML。它适合想对某个具体文档做 Office 自定义选项卡、功能区 XML 配置又不想折腾 VSTO 或 COM 加载项的人。它具体能做什么给文档加一个新选项卡在 Custom UI XML 的ribbon里写一个tab元素tab里放groupgroup里放button在工具里打开文档后直接在主编辑区改改完点校验保存即生效。重排内置分组不只能加东西还能用idMso引用现成的分组如GroupClipboard、GroupFont在选项卡里调整它们的顺序或者干脆删掉不想看到的行。仓库里的Samples/Excel - A Custom Tab.xml就是一个选项卡被整体重排后的完整样例。复用内置命令在commands元素里给现有命令指定onAction把它挂到你自己的逻辑上Samples/Repurpose.xml演示了如何拦截 Save 命令并禁用 Bold。改 Backstage 文件页Samples/Custom OutSpace.xml演示在文件选项页里加自定义选项卡、任务分组和任务条目。完整流程走一遍先拿到工具。仓库里同时有源码和预编译包有 Visual Studio 就从源码构建否则直接双击publish/目录下的setup.exe安装。git clone https://gitcode.com/gh_mirrors/of/office-custom-ui-editor装完之后先准备一个 Office 文档比如一份 .docx 报告模板。这里有个前提必须想清楚这个工具改的是你打开的这一个文档不是 Office 的全局界面——你加的选项卡只出现在这份文档里打开别的文档不受影响。这和 Office 设置对话框里的自定义功能区不是一回事。打开那个文档后主界面左侧是文档部件树列出文档里的各个 customUI 部件office12 对应 2007 版 schemaoffice14 对应 2010 及以后版本。双击部件XML 内容就出现在带语法高亮的编辑区。如果文档里还没有 Custom UI 部件从菜单插入新部件即可也可以从 Samples 菜单直接载入Samples/下的模板 XML 起步。写好 XML 后点工具栏上的校验按钮它会按Schemas/customui14.xsd逐条检查并指出哪个元素不合法。校验通过保存关掉 Word 重新打开你写的选项卡就出现在功能区末尾。一个真实场景走透给 Word 报告加文档工具选项卡以一份 Word 报告模板为例加一个叫文档工具的选项卡放两个大按钮一个套用标题样式一个插入目录。完整 XML 如下customUI xmlnshttp://schemas.microsoft.com/office/2009/07/customui ribbon tabs tab idtabDocTools label文档工具 group idgrpHeading label标题样式 button idbtnH1 label一级标题 imageMsoHeading1 sizelarge / button idbtnTOC label插入目录 imageMsoTOCInsert onActionInsertTOC / /group /tab /tabs /ribbon /customUI逐行说明意图开头的xmlns必须是http://schemas.microsoft.com/office/2009/07/customui这是 2010 版 schemaOffice 365 至今仍在用也是工具默认校验的依据。label是给用户看的文字id是你自己起的名字全文唯一写代码回调时用得到。imageMso引用 Office 内置图标库的标识符不需要自己做图。标识符不确定时查工具帮助菜单里的图标标识符列表工具还有插入图标功能可以打开对话框直接挑选。sizelarge让按钮渲染成带文字的大按钮适合高频操作。onActionInsertTOC声明回调函数名。只有想让按钮触发自己的逻辑时才需要配合加载项代码不想写代码按钮可以不挂回调或用commands方式复用内置命令。保存后重新打开文档功能区末尾多出一个文档工具选项卡里面是标题样式分组两个大按钮并排显示。新手常翻车的地方⚠️ Office 对 Custom UI XML 报错时不会提示而是静默忽略整个部件。所以保存前务必让工具校验通过别在别的编辑器里随手改完直接存。保存了但 Word 里没看到选项卡先确认打开的是同一份文件、且保存前校验通过再确认你期望的就是仅本文档生效——想在所有新文档里都有得去改 Normal 模板文件那超出了本工具的范围。按钮没有图标imageMso标识符写错或不存在时按钮会退化成纯文字。对照帮助菜单里的标识符列表改正即可。id 重复同一个部件里所有元素的 id 必须互不重复校验器会报但新手常在新加的行里复制旧 id 而不检查。选错 schema 版本部件树里 office12 和 office14 并存时新功能写在 office14 部件里2010 schema 是 2007 的超集且是后续所有版本沿用的那一份。两个进阶点各几行改动条件显示——getVisible的值可以是一个回调函数名Office 每次刷新功能区时调用它决定按钮显隐button idbtnFinal label标记为终稿 getVisibleIsFinalDraft onActionMarkFinal /右键上下文菜单——同一个 customUI 里加contextMenus元素idMso指定要增强哪个内置菜单contextMenus contextMenu idMsoContextMenuText button idbtnFmt label智能排版 onActionDoFmt / /contextMenu /contextMenus收尾一句话总结这个工具把改 Office 功能区变成了编辑文件里的 XMLschema 帮你挡住大部分低级错误。最小可执行的下一步打开任意一份 .docx从 Samples 菜单载入Samples/Custom Tab.xml把里面三处label改成自己的名字点校验保存重开 Word 看功能区。FAQ必须安装 Office 才能用吗工具本身独立运行编辑和校验 XML 不需要 Office但要看到最终效果机器上得装 Office。按钮必须写回调代码才能用吗不一定。不写onAction的按钮点击后不执行任何动作也可以学Repurpose.xml用commands把内置命令的onAction指向一个回调函数这样只需要实现一个函数。【免费下载链接】office-custom-ui-editorStandalone tool to edit custom UI part of Office open document file format项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考