ribbon是什么
Ribbon是一种以面板及标签页为架构的用户界面,原先出现在Microsoft Office 2007后续版本的Word、Excel和PowerPoint等组件中,后来也被运用到Windows 7的一些附加组件等其它软件中,如画图和写字板,以及Windows 8中的资源管理器。
WPS利用ribbon做的是界面的定义,就是「标签选项卡」的这种界面。WPS加载项作为可以对WPS界面做自定义的一种扩展开发方式,也遵循ribbon的规范。以通过wpsjs创建的一个纯净的Demo为例,在Demo的根目录下有三个文件,作用如下说明:

index.html:入口文件,WPS启动后加载WPS加载项,就以这个文件为入口
main.js:index.html包含的,负责核心js的加载,开发者可以自主添加其他js文件
ribbon.xml:自定义功能区定义文件,遵循ribbon的CustomUI规范。
在ribbon.xml中,有几个常用的控件,之下用代码做个说明:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnWPSWorkTabLoad"><ribbon startFromScratch="false">        <tabs><!-- OA菜单开启显隐处理, insertBeforeMso表示要在WPS自身某个tab之前显示,insertAfterMso表示在某个WPS自身tab之后显示--><!--在如下的tab定义中,id是WPSWorkExtTab,显示标签是OA辅助,有控制显隐的事件设置getVisible,设置在「开始」(TabHome)页签之前--><tab id="WPSWorkExtTab" label="OA辅助" getVisible="OnGetVisible" insertBeforeMso="TabHome"><group id="grpWPSClound" label="WPS云文档相关功能" getVisible="OnGetVisible"><box id="boxBoxCloud1" boxStyle="horizontal" visible="true"><button id="btnOpenWPSYUN" label="WPS云文档" getLabel="OnGetLabel" onAction="OnAction" getEnabled="OnGetEnabled" getVisible="OnGetVisible" getImage="GetImage" size="large"/></box><box id="boxBoxCloud1" boxStyle="horizontal" visible="true"><button id="btnOpenLocalWPSYUN" label="导入文件" getLabel="OnGetLabel" onAction="OnAction" getEnabled="OnGetEnabled" getVisible="OnGetVisible" getImage="GetImage" size="large"/></box><separator id="sepWPSClound"/></group><group id="grpWPSWork" label="OA助手文档操作功能组" getVisible="OnGetVisible"><button id="btnSaveToServer" label="保存到OA" onAction="OnAction" getEnabled="OnGetEnabled" getImage="GetImage" size="large"/><button id="btnSaveAsFile" label="保存本地" getLabel="OnGetLabel" onAction="OnAction" getEnabled="OnGetEnabled" getVisible="OnGetVisible" getImage="GetImage" size="large" /><box id="boxWPSWorkEx" boxStyle="vertical" visible="true"><button id="btnChangeToPDF" label="转PDF上传" getLabel="OnGetLabel" onAction="OnAction" getEnabled="OnGetEnabled" getVisible="OnGetVisible" getImage="GetImage" size="large"/><button id="btnChangeToUOT" label="转UOT上传" getLabel="OnGetLabel" onAction="OnAction" getEnabled="OnGetEnabled" getVisible="OnGetVisible" getImage="GetImage" size="large"/><button id="btnChangeToOFD" label="转OFD上传" getLabel="OnGetLabel" onAction="OnAction" getEnabled="OnGetEnabled" getVisible="OnGetVisible" getImage="GetImage" size="large"/></box><separator id="sepWPSWork" getVisible="OnGetVisible" /></group></tab><!-- 在这里可以定义WPS自身的tab页签的一些行为,页签的getEnabled和getVisible等效,无onAction事件--><!-- 全集可以去open.wps.cn/docs/office的idMso列表查询--><!--WPS自身功能常见tab的idMso如下--><!--开始--><tab idMso="TabHome" getEnabled="OnGetEnabled"/><!--插入--><tab idMso="TabInsert" getEnabled="OnGetEnabled"/><!--页面布局--><tab idMso="TabPageLayoutWord" getEnabled="OnGetEnabled"/><!--引用--><tab idMso="TabReferences" getEnabled="OnGetEnabled"/><!--审阅--><tab idMso="TabReviewWord" getEnabled="OnGetEnabled"/><!--视图--><tab idMso="TabView" getEnabled="OnGetEnabled"/><!--开发工具--><tab idMso="TabDeveloper" getEnabled="OnGetEnabled"/></tabs></ribbon><commands><!-- idMso支持getEnabled和onAction,不支持visible属性和事件--><!-- 文档复制和剪切控制--><command idMso="Copy" getEnabled="OnGetEnabled" /><command idMso="Cut" getEnabled="OnGetEnabled" /><!-- 文档保存和另存控制--><command idMso="FileSave" getEnabled="OnGetEnabled" onAction="OnAction"/><command idMso="SaveAll" getEnabled="OnGetEnabled" /><command idMso="FileSaveAsMenu" getEnabled="OnGetEnabled" onAction="OnAction"/><command idMso="FileSaveAs" getEnabled="OnGetEnabled" onAction="OnAction"/><command idMso="FileSaveAsPicture" getEnabled="OnGetEnabled" /><command idMso="SaveAsPicture" getEnabled="OnGetEnabled" /><command idMso="FileMenuSendMail" getEnabled="OnGetEnabled" /><!-- 输出PDF控制--><command idMso="SaveAsPDF" getEnabled="OnGetEnabled"/><command idMso="FileSaveAsPDF" getEnabled="OnGetEnabled"/><command idMso="ExportToPDF" getEnabled="OnGetEnabled"/><command idMso="FileSaveAsPdfOrXps" getEnabled="OnGetEnabled"/><!-- 输出OFD控制--><command idMso="SaveAsOfd" getEnabled="OnGetEnabled"/><command idMso="FileSaveAsOfd" getEnabled="OnGetEnabled"/><!--文档打印控制--><command idMso="FilePrint" getEnabled="OnGetEnabled"/><command idMso="FilePrintMenu" getEnabled="OnGetEnabled"/><command idMso="FilePrintPreview" getEnabled="OnGetEnabled"/><!--文档修订控制--><command idMso="ReviewTrackChangesMenu" getEnabled="OnGetEnabled"/><command idMso="ReviewRejectChangeMenu" getEnabled="OnGetEnabled"/><command idMso="ReviewAcceptChangeMenu" getEnabled="OnGetEnabled"/><!--文档新建控制--><command idMso="FileNewMenu" getEnabled="OnGetEnabled" onAction="OnAction"/><command idMso="FileNew" getEnabled="OnGetEnabled" onAction="OnAction"/><command idMso="WindowNew" getEnabled="OnGetEnabled" onAction="OnAction"/><command idMso="FileNewBlankDocument" getEnabled="OnGetEnabled" onAction="OnAction"/></commands><contextMenus><contextMenu idMso="ContextMenuText"><menu id="Menu_ContextMenuText" label="测试右键" visible="true"><button id="ShowAlert_ContextMenuText" label="弹出一个警告框" onAction="OnAction" getImage="GetImage" visible="true"/></menu></contextMenu></contextMenus>
</customUI>

WPS加载项深入开发代码ribbon解析相关推荐

  1. wps加载项初步开发

    技术选型 应公司要求,在不连外网情况下,需要完成服务器文档的预览.编辑.上传等功能.于是选用了wps客户端的加载项开发. 参考资料: wps客户端开发文档 wps客户端开发文档 wps加载项demo地 ...

  2. WPS 加载项开发说明

    WPS 加载项结构 WPS 加载项由 自定义功能区和网页两部分组成.自定义功能区只需要一个配置文件,对应 WPS 加载项目录中的ribbon.xml文件: 网页部分负责执行自定义功能区对应的逻辑功能. ...

  3. 如何开发一个 WPS 加载项

    WPS 加载项是一套基于 Web 技术用来扩展 WPS 应用程序的解决方案.每个 WPS 加载项都对应打开了一个网页,并通过调用网页中 JavaScript 方法来完成其功能逻辑. WPS 加载项打开 ...

  4. wps加载项开发和使用

    这里写自定义目录标题 wps加载项的使用 准备环境 生成一个加载项的demo wps加载项的使用 准备环境 1.安装wps企业版(个人版可能出问题) 2.安装node 环境 3.详细情况可查看官方开发 ...

  5. WPS加载项系列(2)第二个WPS项目

    上一章讲解了官方提供的第一个wps项目,这个项目主要用来了解nodejs使用以及wps能实现哪些功能,后续在项目开发中,相似功能的开发可以有个参考. 下面将要讲解官网提供的第二个wps项目,这个项目可 ...

  6. WPS加载项系列(3)WPS项目部署

    一.部署方式 wps加载项目有两种部署模式,publish模式和jsplugins.xml模式,可以参考实际情况自己选择部署模式. 二.publish模式 1. 原理 通过访问 publish自动安装 ...

  7. WPS加载项系列(1)第一个WPS项目

    前言 任何一个新技术的学习使用,一般都由demo开始,然后逐步深入直到完全掌握,这个也不例外,所以这个系列的第一篇文章主要写的是如何将官方提供的demo跑起来. 一.项目地址 官方提供的演示示例(OA ...

  8. wps多人协作的意义_怎么能快速体验WPS加载项

    相信大家看过了前三篇专栏文章后,一定对与WPS的各类集成对接模式产生了想试一试的想法,那咱们就实操一下,先从WPS加载项的对接开始吧. 目前获取WPS加载项的资料一共有五个途径: 提供一个外网体验环境 ...

  9. 前端|npm全局创建wps加载项

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 问题描述 基于vscode的方式创建wps加载项在获取类型之后 ...

  10. WPS加载项是如何实现调用业务系统JS的 WPS通信原理

    WPS加载项是如何实现调用业务系统JS的 WPS通信原理 wpssdk 一.业务系统调用WPS原理 二.WPS调用业务系统JS的原理 End 写在前面:JSAPI金山办公官方群 756432763 欢 ...

最新文章

  1. 假如易立竞吐槽程序员......
  2. IJCAI 2021 ICAPS 2021自动强化学习挑战赛正式开赛
  3. 1039 到底买不买(pat乙级、C++)
  4. 咋安装redhatlinux镜像在哪下载_Windows7正版系统安装教程
  5. javascript window.screen
  6. 数据库读写锁的C++实现
  7. C#中判断服务器图片是否存在
  8. GitLab地域封锁,总监愤而辞职!苹果产品路线图曝光;CAT 0.1.0发布|极客头条...
  9. db2建库、建表空间基本流程
  10. c语言设计四路彩灯显示系统,数字电路逻辑设计课程设计-四路彩灯显示系统设计...
  11. 神经元模型hhmodel模型_基于HH模型神经元动作电位的模拟与实现
  12. CSDN中用Markdown如何给文本加下划线(可延长下划线)
  13. 矢量绘图界的性价比之王-Affinity Designer
  14. 初级面试常见sql练习
  15. 15_微信小程序之svg地图自定义组件编写
  16. 去除XP桌面图标的阴影
  17. 15 条实用 Linux/Unix 磁带管理命令
  18. 经常调试笔记本服务器显示器,瞎折腾!闲置损坏笔记本电脑改造的DIY液晶显示屏!蜗牛星际附件。...
  19. Delphi SM2/SM4国密算法
  20. 基于 node.js 的校园交流平台的设计与实现(word文档)

热门文章

  1. 欧陆词典牛津高阶英汉双解词典(第9版)_V2.0层叠样式示意:
  2. C语言基础视频教程 15天
  3. 利用计算机指令清理垃圾,计算机Dos处理,编写一键清理系统垃圾的bat代码,小白都可以学...
  4. 使用计算机时应先按,自考试题及答案《计算机应用基础》
  5. 海信信号机后台服务器配置,海信自适应交通信号控制系统解决方案
  6. 用计算机制作模拟汽车,计算机模拟在汽车行业应用将兴起
  7. 关于写的Java书籍进展
  8. 高频电子线路——串联谐振、并联谐振总结
  9. Java多线程编程实战指南(核心篇)读书笔记(三)
  10. win7家庭版计算机桌面,Win7 home basic家庭普通版显示桌面图标的方法