WPS加载项深入开发代码ribbon解析
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解析相关推荐
- wps加载项初步开发
技术选型 应公司要求,在不连外网情况下,需要完成服务器文档的预览.编辑.上传等功能.于是选用了wps客户端的加载项开发. 参考资料: wps客户端开发文档 wps客户端开发文档 wps加载项demo地 ...
- WPS 加载项开发说明
WPS 加载项结构 WPS 加载项由 自定义功能区和网页两部分组成.自定义功能区只需要一个配置文件,对应 WPS 加载项目录中的ribbon.xml文件: 网页部分负责执行自定义功能区对应的逻辑功能. ...
- 如何开发一个 WPS 加载项
WPS 加载项是一套基于 Web 技术用来扩展 WPS 应用程序的解决方案.每个 WPS 加载项都对应打开了一个网页,并通过调用网页中 JavaScript 方法来完成其功能逻辑. WPS 加载项打开 ...
- wps加载项开发和使用
这里写自定义目录标题 wps加载项的使用 准备环境 生成一个加载项的demo wps加载项的使用 准备环境 1.安装wps企业版(个人版可能出问题) 2.安装node 环境 3.详细情况可查看官方开发 ...
- WPS加载项系列(2)第二个WPS项目
上一章讲解了官方提供的第一个wps项目,这个项目主要用来了解nodejs使用以及wps能实现哪些功能,后续在项目开发中,相似功能的开发可以有个参考. 下面将要讲解官网提供的第二个wps项目,这个项目可 ...
- WPS加载项系列(3)WPS项目部署
一.部署方式 wps加载项目有两种部署模式,publish模式和jsplugins.xml模式,可以参考实际情况自己选择部署模式. 二.publish模式 1. 原理 通过访问 publish自动安装 ...
- WPS加载项系列(1)第一个WPS项目
前言 任何一个新技术的学习使用,一般都由demo开始,然后逐步深入直到完全掌握,这个也不例外,所以这个系列的第一篇文章主要写的是如何将官方提供的demo跑起来. 一.项目地址 官方提供的演示示例(OA ...
- wps多人协作的意义_怎么能快速体验WPS加载项
相信大家看过了前三篇专栏文章后,一定对与WPS的各类集成对接模式产生了想试一试的想法,那咱们就实操一下,先从WPS加载项的对接开始吧. 目前获取WPS加载项的资料一共有五个途径: 提供一个外网体验环境 ...
- 前端|npm全局创建wps加载项
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 问题描述 基于vscode的方式创建wps加载项在获取类型之后 ...
- WPS加载项是如何实现调用业务系统JS的 WPS通信原理
WPS加载项是如何实现调用业务系统JS的 WPS通信原理 wpssdk 一.业务系统调用WPS原理 二.WPS调用业务系统JS的原理 End 写在前面:JSAPI金山办公官方群 756432763 欢 ...
最新文章
- 假如易立竞吐槽程序员......
- IJCAI 2021 ICAPS 2021自动强化学习挑战赛正式开赛
- 1039 到底买不买(pat乙级、C++)
- 咋安装redhatlinux镜像在哪下载_Windows7正版系统安装教程
- javascript window.screen
- 数据库读写锁的C++实现
- C#中判断服务器图片是否存在
- GitLab地域封锁,总监愤而辞职!苹果产品路线图曝光;CAT 0.1.0发布|极客头条...
- db2建库、建表空间基本流程
- c语言设计四路彩灯显示系统,数字电路逻辑设计课程设计-四路彩灯显示系统设计...
- 神经元模型hhmodel模型_基于HH模型神经元动作电位的模拟与实现
- CSDN中用Markdown如何给文本加下划线(可延长下划线)
- 矢量绘图界的性价比之王-Affinity Designer
- 初级面试常见sql练习
- 15_微信小程序之svg地图自定义组件编写
- 去除XP桌面图标的阴影
- 15 条实用 Linux/Unix 磁带管理命令
- 经常调试笔记本服务器显示器,瞎折腾!闲置损坏笔记本电脑改造的DIY液晶显示屏!蜗牛星际附件。...
- Delphi SM2/SM4国密算法
- 基于 node.js 的校园交流平台的设计与实现(word文档)
热门文章
- 欧陆词典牛津高阶英汉双解词典(第9版)_V2.0层叠样式示意:
- C语言基础视频教程 15天
- 利用计算机指令清理垃圾,计算机Dos处理,编写一键清理系统垃圾的bat代码,小白都可以学...
- 使用计算机时应先按,自考试题及答案《计算机应用基础》
- 海信信号机后台服务器配置,海信自适应交通信号控制系统解决方案
- 用计算机制作模拟汽车,计算机模拟在汽车行业应用将兴起
- 关于写的Java书籍进展
- 高频电子线路——串联谐振、并联谐振总结
- Java多线程编程实战指南(核心篇)读书笔记(三)
- win7家庭版计算机桌面,Win7 home basic家庭普通版显示桌面图标的方法