使用onlyoffice让你轻松实现word、ppt、excel在线编辑功能 您所在的位置:网站首页 excel在线编辑怎么操作视频播放 使用onlyoffice让你轻松实现word、ppt、excel在线编辑功能

使用onlyoffice让你轻松实现word、ppt、excel在线编辑功能

2024-06-10 11:51| 来源: 网络整理| 查看: 265

一、了解onlyoffice

ONLYOFFICE Docs是一个开源办公套件,包括文本文档、电子表格和演示文稿的编辑器。它提供以下功能:

1、创建、编辑和查看文本文档、电子表格和演示文稿;

2、与其他队友实时协作处理文件;

3、ONLYOFFICE Docs 还支持用于将您的应用程序与在线办公室集成的WOPI 协议。

二、前提准备

搭建安装onlyoffice,具体参考官网地址:

https://helpcenter.onlyoffice.com/installation/docs-developer-install-ubuntu.aspx?from=api_csharp_example

三、开发进行中

1、准备一个接口返回config配置文件。

@GetMapping("/config/{fileId}") @ApiOperation("返回配置信息") public String getConfig(ModelMap map,@PathVariable String fileId){     //具体业务处理省略     //主要是获取一些信息,用于设置html中的脚本对象config上。     //4、设置视图数据:a、文件类型。b、用户信息。c、文件信息。     map.addAttribute("docType",documentType);     map.addAttribute("user",user);     map.addAttribute("fileManager",fileManager);    //将html页面返回回去     return "onlineEdit"; }

2、准备一个callback接口用于文件保存。

@PostMapping("/saveFile/{fileId}/{fileCode}") @ApiOperation("在线编辑保存回调接口") @ResponseBody public void saveFile(HttpServletRequest request , HttpServletResponse response, @PathVariable String fileId, @PathVariable String fileCode) throws IOException {     PrintWriter writer = response.getWriter();     Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A");     String body = scanner.hasNext() ? scanner.next() : "";     JSONObject jsonObject = JSONObject.parseObject(body);     System.out.println(jsonObject);     //status等于2时表示已经准备好保存     if((Integer) jsonObject.get("status") == 2){       //2、根据返回的Url去下载文件       URL url = new URL((String) jsonObject.get("url"));       java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();       InputStream stream = connection.getInputStream();       //此处获取到的流即是onlyoffice服务下的文件流。       //3、重新上传业务省略       connection.disconnect();     }     writer.write("{\"error\":0}"); }

3、准备一个html页面。

                       var  config = {             "type": "desktop",             "mode": "review",             "documentType": "[[${docType}]]",             "document": {                 "title": "[[${fileManager.fileName}]]",                 "url": "文件下载地址",                 "fileType": "[[${fileManager.fileType}]]",                 "key": "[[${fileManager.fileManagerId}]]",                 "info": {},                 "permissions": {                     "comment": true,                     "copy": true,                     "download": true,                     "edit": true,                     "print": true,                     "fillForms": true,                     "modifyFilter": true,                     "modifyContentControl": true,                     "review": true,                     "commentGroups": {}                 }             },             "editorConfig": {                 "mode": "edit",                 "callbackUrl": 回调接口保存文件的地址,                 "lang": "zh",                 "createUrl": "",                 "templates": [                     {                         "icon": "",                         "name": "Blank",                         "url": "http://ip地址/OnlineEditorsExampleJava_war_exploded/EditorServlet?fileExt=docx"                     },                     {                         "icon": "http://ip地址/OnlineEditorsExampleJava_war_exploded/css/img/file_docx.svg",                         "name": "With sample content",                         "url": "http://ip地址/OnlineEditorsExampleJava_war_exploded/EditorServlet?fileExt=docx&sample=true"                     }                 ],                 "user": {                     "id": "[[${user.userId}]]",                     "name": "[[${user.username}]]"                 },                 "customization": {                     "goback": {                         "url": "http://ip地址/OnlineEditorsExampleJava_war_exploded/IndexServlet"                     },                     "forcesave": false,                     "submitForm": false,                     "about": true,                     "feedback": false                 },                 "canCoAuthoring": true,                 "canUseHistory": true,                 "canHistoryClose": true,                 "canHistoryRestore": false,                 "canSendEmailAddresses": false,                 "canRequestEditRights": true,                 "canRequestClose": false,                 "canRename": false,                 "canMakeActionLink": true,                 "canRequestUsers": true,                 "canRequestSendNotify": true,                 "canRequestSaveAs": false,                 "canRequestInsertImage": true,                 "canRequestMailMergeRecipients": true             },             "width": "100%",             "height": "100%",             "events": {},             "frameEditorId": "iframeEditor"         }         var connectEditor = function () {             new DocsAPI.DocEditor("placeholder", config);         };         if (window.addEventListener) {             window.addEventListener("load", connectEditor);         } else if (window.attachEvent) {             window.attachEvent("load", connectEditor);         }          在线编辑文档

更加具体的config对象和回调处理接口内容参考官网:

https://api.onlyoffice.com/editors/getdocs

四、测试

当我调用config接口时,打开不同类型的文件,展示返回html页面如下。

10e8237c33fee3903c46fd4b2af893ba.png

b63c798ec38d438cb320f1b29463227b.png

839af4c13f023a4bd845065a0bd6c524.png

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍五、总结

1、要使用onlyoffice去在线编辑不难,主要是掌握config的配置。

2、它的一个工作流程:当我打开在线编辑时,接口设置数据返回html页面,并将数据拼接到config上。接着页面会根据config的url地址去下载源文件,最后将内容展示到html上。最后当我们修改完毕关闭了窗口时,会调用callbackurl的接口进行文件保存。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有