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

2024-05-14 21:12

本文主要是介绍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}
    
}
 

这篇关于WPS加载项(wps jsapi)创建及部署--新版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989867

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2