WPS加载项(wps jsapi)创建及部署--新版

1,在桌面新建文件夹wpsjsapitest,在命令提示符中转到wpsjsapitest路径下,

2,新建加载项HelloWps、HelloEt、HelloWpp

(i),在命令提示符中执行命令wpsjs create HelloWps

(ii),在命令提示符中执行命令wpsjs create HelloEt

(iii),在命令提示符中执行命令wpsjs create HelloWpp

以下四步(3,4,5,6)是在不采用wpsjs publish命令时的做法(其实执行wpsjs publish,会生成一个wps-addon-build文件夹,里面内容与下面手动复制的内容一致,另外会生成一个wps-addon-publish文件夹,里面放置publish.html)。

3,在D:\Tomcat 8.*\webapps\下新建文件夹wpsjsapitest,在wpsjsapitest文件夹下新建HelloWps、HelloEt、HelloWpp,

4,将桌面wpsjsapitest\HelloWps目录下的images目录、js目录,ui目录、index.html、main.js、ribbon.xml复制到D:\Tomcat 8.*\webapps\wpsjsapitest\HelloWps目录下。

5,将桌面wpsjsapitest\HelloEt目录下的images目录、js目录,ui目录、index.html、main.js、ribbon.xml复制到D:\Tomcat 8.*\webapps\wpsjsapitest\HelloEt目录下。

6,将桌面wpsjsapitest\HelloWpp目录下的images目录、js目录,ui目录、index.html、main.js、ribbon.xml复制到D:\Tomcat 8.*\webapps\wpsjsapitest\HelloWpp目录下。

注意,D:\Tomcat 8.*是tomcat服务器目录,运行demo时请保证tomcat服务器在运行状态。

7,在桌面新建文件夹“wps jsapi test caller”,里面放三个文件,index.html,wpsjs_func.js,wpsjsrpcsdk.js,其中wpsjsrpcsdk.js是npm安装wpsjs时下载到本地的库。
浏览器打开index.html,点击第一个按钮,即可启动wps、et、或wpp(注意参数设置,下面的代码里有详细解释),并打开本地文档
例子见https://download.csdn.net/download/daqinzl/89303452。

index.html文件内容如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试集成页面</title>
    <style>
        div {
            margin: 5px 3px;
        }
    </style>
</head>

<body>
    <div><button οnclick="action1();">执行加载项函数InvokeFromSystemDemo</button></div>
    <div><button οnclick="action2();">传递一个Object至WPS</button></div>
    <div><button οnclick="action3();">传递一个String至WPS</button></div>
    <script src="wpsjsrpcsdk.js"></script>
    <script src="wpsjs_func.js"></script>
    
    
    <script type="text/javascript">        
        function action1() {                        
            var readOnly=false;
            //打开word时参数设置如下,注意与wpsjs_func.js里url设置一致
            var type = "wps";
            var filePath = "D:/test.docx";
            
            //打开excel时参数设置如下,注意与wpsjs_func.js里url设置一致
            type = "et";
            filePath = "D:/test.xlsx";
            
            //打开ppt时参数设置如下,注意与wpsjs_func.js里url设置一致
            type = "wpp";
            filePath = "D:/test.pptx";
            
            wpsJs_openFile(type, filePath, readOnly);
        }
        function action2(params) {
            
        }
        function action3(params) {
            
        }
    </script>
</body>

</html>


///
wpsjs_func.js文件内容如下:

function wpsJs_openFile(type, filePath, readOnly) {
    var element = {
        "name": wpsjs_GetAddonName(type),
        "addonType": type,
        "online": "true",
        
        //打开word,excel,ppt时请设置不同url
        "url": "http://127.0.0.1:80/wpsjsapitest/HelloWps/"
        //"url": "http://127.0.0.1:80/wpsjsapitest/HelloEt/"
        //"url": "http://127.0.0.1:80/wpsjsapitest/HelloWpp/"        
    }
    console.log('wpsjs_StartUp', element)
    WpsAddonMgr.enable(element, function(res) {
        console.log("启用加载项" + type + "结果:", res);
        var invokeParam = {
            filePath: filePath,
            readOnly: readOnly            
        }
        WpsInvoke.InvokeAsHttps(
            type,
            wpsjs_GetAddonName(type), //wps加载项的名字,在实际项目中写上对应的名字            
            "InvokeFromSystemDemo", //要调用的在wps加载项中的函数名
            JSON.stringify(invokeParam), //调用的在wps加载项中的函数要传递的数据,是一个json对象,根据业务系统需求任意定义
            wpsjs_CallBackFunc) //回调函数,wps加载项中InvokeFromSystemDemo这个函数的返回值作为这个函数的参数
    })

}

function wpsjs_GetAddonName(type) {    
    if (type == 'wps')        
        return 'HelloWps'
    else if (type == 'et')        
        return 'HelloEt'
    else if (type == 'wpp')        
        return 'HelloWpp'
    return 'addon'
}

var wpsjs_CallBackFunc = function(result) {
    
}

///
D:\Tomcat 8.*\webapps\wpsjsapitest\HelloWps\js\systemdemo.js文件内容如下

function openOfficeFileFromSystemDemo(param){
    let jsonObj = (typeof(param)=='string' ? JSON.parse(param) : param)
    alert("从业务系统传过来的参数为:" + JSON.stringify(jsonObj))
    return {wps加载项项返回: jsonObj.filepath + ", 这个地址给的不正确"}
}

function InvokeFromSystemDemo(param){
    
    let jsonObj = (typeof(param)=='string' ? JSON.parse(param) : param);
    
    let readOnly = jsonObj.readOnly;
    let filePath = jsonObj.filePath;
    
     console.log("before open jsonObj:", jsonObj);
    wps.PluginStorage.setItem("readOnly", readOnly);
    
    let _readOnly = wps.PluginStorage.getItem("readOnly");
     wps.WpsApplication().Documents.Open(filePath, null, _readOnly);
     
    return {操作结果:"打开word文件成功", readOnly: readOnly};
    
}

///
D:\Tomcat 8.*\webapps\wpsjsapitest\HelloEt\js\systemdemo.js文件内容如下

function openOfficeFileFromSystemDemo(param){
    let jsonObj = (typeof(param)=='string' ? JSON.parse(param) : param)
    alert("从业务系统传过来的参数为:" + JSON.stringify(jsonObj))
    return {wps加载项项返回: jsonObj.filepath + ", 这个地址给的不正确"}
}

function InvokeFromSystemDemo(param){
        
    let jsonObj = (typeof(param)=='string' ? JSON.parse(param) : param)
    let readOnly = jsonObj.readOnly
    let filePath = jsonObj.filePath;
    // console.log("before open jsonObj:", jsonObj)
    wps.PluginStorage.setItem("readOnly", readOnly)
    
    let _readOnly = wps.PluginStorage.getItem("readOnly")
    wps.EtApplication().Workbooks.Open(filePath, null, _readOnly)
        
    return {操作结果:"打开excel文件成功", readOnly: readOnly}
    
}

///
D:\Tomcat 8.*\webapps\wpsjsapitest\HelloWpp\js\systemdemo.js文件内容如下

function openOfficeFileFromSystemDemo(param){
    let jsonObj = (typeof(param)=='string' ? JSON.parse(param) : param)
    alert("从业务系统传过来的参数为:" + JSON.stringify(jsonObj))
    return {wps加载项项返回: jsonObj.filepath + ", 这个地址给的不正确"}
}

function InvokeFromSystemDemo(param){
    
    let jsonObj = (typeof(param)=='string' ? JSON.parse(param) : param)
    let readOnly = jsonObj.readOnly
    let filePath = jsonObj.filePath;
    console.log("before open jsonObj:", jsonObj)
    wps.PluginStorage.setItem("readOnly", readOnly)    
    
    let _readOnly = wps.PluginStorage.getItem("readOnly")
    wps.WppApplication().Presentations.Open(filePath, _readOnly)
    return {操作结果:"打开ppt文件成功", readOnly: readOnly}
    
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MHD093C-058-PG1-AA具备哪些特点?

MHD093C-058-PG1-AA是一种高性能的伺服电机控制器。 该产品具备以下特点&#xff1a; 高精度与高性能&#xff1a;MHD093C-058-PG1-AA设计用于提供精确的运动控制和定位&#xff0c;适用于需要高精度定位和控制的场合。快速响应&#xff1a;采用先进的控制技术&#xff0c;确…

高血压患者可以吃什么?不可以吃什么?

点击文末领取揿针的视频教程跟直播讲解 随着生活水平的提高&#xff0c;越来越多的人得上了“新四高”——高血压、高血脂、高血糖、高尿酸。 一旦惹上这些慢性病&#xff0c;那就得「管住嘴」了~但究竟什么能吃、什么不能吃&#xff0c;还是有很多人不清楚 高血压患者应该遵…

2024/5/14 英语每日一段

“It is important as it suggests that possibly several populations in the world already started to include substantial amount of plants in their diet” in the period before agriculture was developed, a view contradictory to the popular one, added archeo-ge…

【C#】 SortedDictionary,查找字典中是否存在给定的关键字

欢迎来到《小5讲堂》 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景场景说明红黑树原理判断代码Dictionary知识点相关文章 背景 最近…

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数 1、 def go(a, b):Spaceship.step(2)Dev.step(a)Spaceship.step(b)Dev.turnRight()Dev.step(b)Dev.turnLeft()Dev.step(-a) Dev.turnLeft() Dev.step(3) Dev.step(-3) go(3, 2) go(6, 1) go(5, 2) go(4, 3)2、 def go(…

高校普法|基于SSM+vue的高校普法系统的设计与实现(源码+数据库+文档)

高校普法系统 目录 基于SSM&#xff0b;vue的高校普法系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3律师功能模块 4学生功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…

RockChip Android8.1 EthernetService分析

一:概述 本篇文章将围绕RK Android8.1 SDK对Ethernet做一次框架分析,包含Framework层和APP层。 当前版本SDK默认只支持一路Ethernet,熟悉Ethernet工作流程后通过修改最终会在系统Setting以太网中呈现多路选项(可以有多种实现方式),博主通过增加ListPreference实现的效果…

[FSCTF 2023]ez_php1

一共有三小关 第一关&#xff1a;md5加密 第二关&#xff1a;反序列化 重点 单个字符串序列化 unserialize($str) "$KEY" <?php $KEY"YES I love";echo serialize($KEY); s:10:"YES I love"; 第三关&#xff1a; 反序列化 把a的地址赋给…

26版SPSS操作教程(高级教程第二十一章)

目录 前言 粉丝及官方意见说明 第二十一章一些学习笔记 第二十一章一些操作方法 信度分析 问卷信度分析 假设数据 具体操作 结果解释 下面进行进一步分析 结果解释 其他常用信度系数介绍 概化理论SPSS中的实现 结果解释 项目反应理论&#xff08;item respons…

利用git+pandoc完成对word文档的版本控制

Pandoc简介 Pandoc是个好用的文本格式转化器。 1.安装 安装参考官网就好&#xff0c;支持Windows,macOS,Linux。Linux蛮多发行版自带这个&#xff0c;比如Ubuntu&#xff0c;或则说如果安装过Anacoda,那么pandoc也会同时装入电脑中。 我的电脑里装了Anacoda,所以直接拿来用就好…

学校为何更热衷于使用SOLIDWORKS教育版教学

在当今的教育环境中&#xff0c;SOLIDWORKS教育版因其独特的优势&#xff0c;越来越受到学校的青睐。为什么学校更热衷于使用SolidWorks教育版进行教学呢&#xff1f;本文将从以下几个方面进行阐述。 首先&#xff0c;SOLIDWORKS教育版为学生们提供了一个与实际工程应用紧密结…

一文分享:抖音外卖城市合伙人如何申请合作?

在当今数字化时代&#xff0c;外卖和团购业务蓬勃发展&#xff0c;商家们纷纷寻求在多个平台上拓宽销售渠道&#xff0c;以获取更多的订单和利润&#xff0c;这也给创业者提供创来机会。在这其中&#xff0c;抖音外卖作为一股新势力&#xff0c;自然吸引了众多创业者的目光&…

YOLO使用笔记

下载oss命令工具。 在OSS.exe文件下打开Power Shell, 输入指令&#xff1a; ./oss login之后输入用户名和密码。 选择将你想要上传的文件导入&#xff1a; ./oss cp {yourdir} oss://进入服务器实例中&#xff0c;打开终端下载数据 同样输入:oss login 进行登录。 登录成功…

[蓝桥杯]真题讲解:合并数列(双指针+贪心)

[蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;合并数列&#xff08;双指针贪心&#xff09; 二、正解代码 1、C #include<bits/stdc.h> #define in…

LVS超详细入门介绍

LVS 一、LVS入门介绍 1.1.LVS负载均衡简介 1.2.负载均衡的工作模式 1.2.1.地址转换NAT&#xff08;Network Address Translation&#xff09; 1.2.2.IP隧道TUN&#xff08;IP Tunneling&#xff09; 1.2.3.直接路由DR&#xff08;Direct Routing&#xff09; 1.3.…

算法课程笔记——路径相关树形DP

算法课程笔记——路径相关树形DP #include<bits/stdc.h>usingnamespacestd; usingLL longlong; constintN 2005; vector<int>e[N],t; structasdf{vector<int> vec; LL val; }; vector<asdf>w[N]; LL dp[N]; intn,m,k,dep[N]{1},f[N]; voiddfs(in…

通过GRE隧道实现OSPF、BGP、IS-IS的套接使用

正文共&#xff1a;999 字 9 图&#xff0c;预估阅读时间&#xff1a;1 分钟 书接上文&#xff08;专线入云场景能否配置动态路由协议&#xff1f;&#xff09;&#xff0c;我们发现通过一定的配置&#xff0c;具体就是组合使用IBGP和静态路由&#xff0c;在使用云专线接入到资…

国内验签DV单域名SSL证书怎么购买?

JoySSL所签发的专业版单域名SSL证书可以做到国内验签&#xff0c;数据不出境&#xff0c;安全等级为业内最高。 JoySSL 专业版国际算法DV单域名证书-JoySSLJoySSL专业版国际算法DV单域名证书通过交叉授信方式&#xff0c;实现国产根与欧美根相互验证&#xff0c;完美兼容且自主…

读取shape文件中数据

读取shape文件中数据 pom文件中引入依赖 <dependency><groupId>org.geotools</groupId><artifactId>gt-shapefile</artifactId><version>26.4</version></dependency>如果jar包下载不下来,在pom中添加下geotools的仓库 <…

Xmind Pro 2024 24安装教程

Xmind 应该是目前最好用的一款思维导图软件了。拥有优秀的用户体验&#xff0c;凭借简单易用&#xff0c;功能强大的特点&#xff0c;XMind在2013年被著名互联网媒体Lifehacker评选为全球最受欢迎的思维导图软件。 Xmind 具有如下优点 ①、用心打磨16年的思维导图软件 ②、评…