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

相关文章

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

Linux部署jar包过程

《Linux部署jar包过程》文章介绍了在Linux系统上部署Java(jar)包时需要注意的几个关键点,包括统一JDK版本、添加打包插件、修改数据库密码以及正确执行jar包的方法... 目录linux部署jar包1.统一jdk版本2.打包插件依赖3.修改密码4.执行jar包总结Linux部署jar包部署

deepseek本地部署使用步骤详解

《deepseek本地部署使用步骤详解》DeepSeek是一个开源的深度学习模型,支持自然语言处理和推荐系统,本地部署步骤包括克隆仓库、创建虚拟环境、安装依赖、配置模型和数据、启动服务、调试与优化以及... 目录环境要求部署步骤1. 克隆 DeepSeek 仓库2. 创建虚拟环境3. 安装依赖4. 配置模型