-
更多相关内容
-
pageoffice 在线Office控制组件 ASP.NET v4.0 免费试用版
2020-11-28 14:47:06PageOffice是市场上唯一一款能够同时支持IE、谷歌Chrome、火狐Firefox、搜狗、360等所有流行浏览器的在线Office组件/文档控件。磐石般的运行稳定性,复杂客户机环境下的广泛兼容性,客户 -
php+openoffice+python实现在线office预览
2017-12-08 10:13:46php+openoffice+python实现在线office预览. 里面包含了最新openoffice4.1.4的安装与结合php实现office在线预览的一个解决方案 -
pageoffice 在线Office控制组件 Java v4.0 免费试用版
2020-11-28 12:48:58PageOffice是市场上唯一一款能够同时支持IE、谷歌Chrome、火狐Firefox、搜狗、360等所有流行浏览器的在线Office组件/文档控件。磐石般的运行稳定性,复杂客户机环境下的广泛兼容性,客户 -
Open Source - 在线Office方案
2022-04-30 08:33:14纯前端js的实现excel在线查看编辑, 目前主要的几个开源项目有 Luckysheet : https://gitee.com/mengshukeji/Luckysheet x-sheet: https://gitee.com/eigi/x-sheet Java实现 基于模板的word生成 . docx4j: ...
纯前端实现
纯前端js的实现excel在线查看编辑, 目前主要的几个开源项目有
Luckysheet : https://gitee.com/mengshukeji/Luckysheet
x-sheet: https://gitee.com/eigi/x-sheet
Java实现
基于模板的word生成 .
docx4j:
poi-tl:
综合类
实现word、excel、ppt等格式的在线预览。
kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等。
其技术方案是将office文件利用OpenOffice或LibreOffice转换为pdf实现在线预览。
只能实现预览,不能在线编辑
浏览器插件
pageoffice , 客户端需要安装office或wps
商业版本
主要是onlyoffice,社区版免费使用,商业收费版本。
功能强大,支持word、excel、ppt等文件的在线编辑、预览、协同等功能
-
asp.net 在线浏览office文档程序源码支持word excel ppt pdf
2022-01-23 16:51:59【程序老媛出品,必属精品,亲测校正,质量保证】 资源名:asp.net 在线浏览office文档程序源码支持word excel ppt pdf 资源类型:程序源代码 源码说明: 适合人群:新手及有一定经验的开发人员 -
officeonline:在线办公
2021-08-04 22:11:50Office Online 集成 开发设置 只需将此 repo 克隆到您的应用程序目录中(需要安装)。 此外,安装 JavaScript 依赖项和构建前端代码需要和 安装 npm 和 Node.js 后,可以通过运行以下命令来完成: npm ci npm run ... -
谷歌浏览器在线预览office文件插件。适用于86以上
2021-10-18 15:36:09适合于web开发,通过浏览器浏览office文件场景,支持word,excel ,ppt ,pdf,等 -
【第三方对接】使用 永中Office 实现在线 Office 整合到 Spring 项目
2020-10-22 11:23:59文章目录1、永中 Office 实现在线 Office(1)永中 Office 介绍(2)项目需求对比(3)基本整合过程(4)调用逻辑图(5)实际使用案例 1、永中 Office 实现在线 Office (1)永中 Office 介绍 永中Office官网,相比...1、永中 Office 实现在线 Office
(1)永中 Office 介绍
永中Office官网,相比于PageOffice,个人觉得从使用方面来说,永中Office好用一点,永中Office对于开发者来说,有两个选择,一个是在线版webOffice功能较少(对于我这种需求对文档内容细节把控的来说,不考虑了),另一个是NP插件版,这个版本是和永中技术支持的小姐姐对接的,也是我推荐使用的版本
从使用层面来说,永中NP插件只需要两个东西,一个是NP插件的js文件需要引入到项目中,其次是客户端需要安装永中Office软件,因为NP插件实际上是调用本地的永中Office软件,而且永中的授权模式是客户端软件授权,也就是说,每个客户端都需要安装,并且授权才能使用,这点和PageOffice不同,PageOffice是服务端授权
永中NP插件只能使用在360浏览器,因为我的项目需要支持在Linux系统上使用
NP插件是在浏览器上新开一个tab,并显示内容,个人觉得最好用的方式(2)项目需求对比
接下来继续分析项目需求,首先看这个插件能否满足,我的项目中使用的所有功能都能满足
- 新建文件
- 新建模板文件
- 新建模板文件(带标签替换)
- 编辑文件
- 查询多个文章段落合并为一个文件(数据库多个段落存的是字符串)
- 保存时设置其他参数值
- 多个二进制文件合并未一个文件(多个文件合并)
- 阅读文件(只读模式)
- 下载文件
- 通过代码构建整篇文章
上面的出了最后一点难度大,其他的都是常规操作,通过代码构建整篇文章意思是用代码拼接出一篇800字作文,这样好理解,包括文字段落、换行、加粗、样式、首航缩进等,一篇标准的文件,我的项目实际上是生成1:1的政府红头文件,对文字的要求更是严格
(3)基本整合过程
前面说过,NP插件只有一个js文件
在网页头部增加js文件就可以了<%-- 永中office --%> <script type="text/javascript" src="<%=path%>/static/js/yozoOffice/yozoOffice.js"></script>
(4)调用逻辑图
(5)实际使用案例
相比PageOffice,永中NP插件简洁的多,PageOffice的代码都是写在java的,永中NP的代码都是写在js中的
下面以新建一个模板文件为例,然后保存到服务器,首先前端请求后台,新建文件
前端发起请求
var param = '?title=' + encodeURI(obj.field.title) + '&issueNumber=' + obj.field.issueNumber + '&userIds=' + userIds.join(',') + '&inviteDate=' + encodeURI(obj.field.inviteDate) + '&attachment=' + encodeURI(obj.field.attachment) + '&attachmentName=' + encodeURI(obj.field.attachmentName) + '&delayTimeLimit=' + encodeURI(obj.field.delayTimeLimit) + '&missTimeLimit=' + encodeURI(obj.field.missTimeLimit) + '&orgId=${sessionScope.userInfoSession.orgId}' + '&createUser=${sessionScope.userInfoSession.id}'; window.open('<%=path%>/test/addInitStep.action' + param);
后台一样的返回一个页面
/** * 添加Word页面 * * @param entity * @param model * @return */ @GetMapping("addInitStep") public String addInitStep(InvitedPaperVo entity, Model model) { UserInfoSession ui = (UserInfoSession) SessionUtils.getSessionAttribute(SessionConst.PC_USER_SESSION); UserInfoVo userInfoVo = userInfoService.getUserInfoById(ui); Map<String, Object> map = new HashMap<>(16); map.put("inviteYear", entity.getInviteDate().substring(0, 5)); map.put("inviteDate", DateUtils.dateClearZero(entity.getInviteDate())); map.put("issueNumber", String.valueOf(entity.getIssueNumber())); map.put("content", ""); map.put("phone", userInfoVo.getOfficeTel() != null ? userInfoVo.getOfficeTel() : ""); map.put("createUserName", userInfoVo.getName() != null ? userInfoVo.getName() : ""); model.addAttribute("bookmarkJson", JSON.toJSON(map)); return "admin/invited_paper_add_office"; }
编写返回的页面,用来承载插件显示的内容
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%String path = request.getContextPath();%> <!DOCTYPE html> <html> <head> <title>新建模板文件</title> <%@ include file="./common/head.jsp" %> </head> <body> <div style="width: 230px; float: left; padding: 10px;"> <button type="button" class="layui-btn layui-btn-blue" lay-submit lay-filter="submitBtn">保存文档</button> </div> <div style="width: calc(100% - 250px); float: left;"> <div id="yozo"></div> </div> <%@ include file="./common/js.jsp" %> <script type="text/javascript"> /** --------------------------------------- 初始化永中 start */ // 初始化插件 var Application; Application = init("yozo", "100%", $(window).height()); Application.ActionEnabledWithYozoID(4, false); Application.openDocumentRemote(serverBaseUrl + "/office-templates/invited_paper.doc", false); // 处理标签替换 var bookmarkJson = JSON.parse('${bookmarkJson}'); var bookmarks = Application.ActiveDocument.Bookmarks; replaceBookmarks(bookmarkJson, bookmarks); /** --------------------------------------- 初始化永中 end */ layui.config({ base: '<%=path%>/static/layuiadmin/' }).extend({ popup: 'modules/popup' }).use(['layer', 'form'], function () { var form = layui.form; // 提交数据 form.on('submit(submitBtn)', function (obj) { layer.confirm('保存文档', {icon: 0, title: '提示'}, function () { var param = '?' + getParamByJson(getQueryString()); if (Application.saveURL(serverBaseUrl + '/invitedPaper/save.action' + param)) { alert('保存成功'); history.go(-1); window.close(); } else { alert('保存失败:请检查网络连接') } }); return false; }); }); </script> </body> </html>
保存到服务器,这里使用了一个工具类,我是自己编写的工具类
/** * 保存基本信息 * * @param invitedPaperVo * @return */ @RequestMapping("save") @ResponseBody public void save(InvitedPaperVo invitedPaperVo, HttpServletRequest request) { invitedPaperVo.setContent(YoZoUtils.getFileByte(request)); invitedPaperService.saveInvitedPaper(invitedPaperVo); }
YoZoUtils.getFileByte(request)
工具类的内容是,从当前request中读取到文件,并转为二进制,我的服务器是保存的二进制文件import javax.servlet.http.HttpServletRequest; import java.io.*; /** * 永中插件 工具类 * * @author Tellsea * @date 2020/09/22 */ public class YoZoUtils { /** * 将前端请求的文件,转为byte[]类型,兼容老插件PageOffice * * @param request * @return */ public static byte[] getFileByte(HttpServletRequest request) { try { if (request.getContentLength() > 0) { String localFileName = System.currentTimeMillis() + ".doc"; String realFileName = request.getSession().getServletContext().getRealPath("/office-templates/temp/") + localFileName; InputStream in = request.getInputStream(); File file = new File(realFileName); if (!file.getParentFile().exists()) { try { file.getParentFile().mkdirs(); file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } FileOutputStream o = new FileOutputStream(file); byte b[] = new byte[1024]; int n; while ((n = in.read(b)) != -1) { o.write(b, 0, n); } o.close(); in.close(); byte[] bytes = fileConvertToByteArray(file); deleteFile(realFileName); return bytes; } else { System.out.println("保存的文件不能为空"); } } catch (IOException e) { System.out.println("处理文件错误"); e.printStackTrace(); } return null; } /** * 把一个文件转化为byte字节数组。 * * @return */ public static byte[] fileConvertToByteArray(File file) { byte[] data = null; try { FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len; byte[] buffer = new byte[1024]; while ((len = fis.read(buffer)) != -1) { baos.write(buffer, 0, len); } data = baos.toByteArray(); fis.close(); baos.close(); } catch (Exception e) { e.printStackTrace(); } return data; } /** * 删除单个文件 * * @param fileName 要删除的文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public static boolean deleteFile(String fileName) { File file = new File(fileName); // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除 if (file.exists() && file.isFile()) { if (file.delete()) { return true; } else { return false; } } else { return false; } } /** * 强制删除 * * @param fileName * @return */ public static boolean forceDelete(String fileName) { File f = new File(fileName); boolean result = false; int tryCount = 0; while (!result && tryCount++ < 10) { System.gc(); result = f.delete(); } return result; } }
上面是保存二进制的方法,建议保存文件到服务器,然后将访问路径保存到数据库,具体的可以和技术客服详细对接
微信公众号
-
WPSOffice_2.0.2(3356).dmg wpsoffice: 2.0.2,3356 多人实时协作的在线Office
2020-03-23 11:12:01金山文档 多人实时协作的在线Office WPS Office Mac版 文档在Mac上顺滑呈现 常用文件格式完美兼容 深色模式、左右分屏、Handoff -
在线office 2003 密码移除
2018-12-08 13:39:31在线移除office文档密码。速度快,只支持office2003版本文档。 -
C# ASP.NET 在线office编辑
2020-01-17 10:59:04C# 基于WebOffice实现在线编辑文档,实时保存到服务器(所有office,兼容WPS) 下载WebOffice控件安装; 在服务器指定盘建立office存储文件(本地C盘建立weboffice文件夹,然后搭建iis访问,相当于服务器访问); -
开源办公系统:支持在线Office在线编辑、文档协同
2022-07-21 15:23:25office在线协作是o2oa和onlyoffice结合实现的一个在线办公套件,包括用于文本,电子表格和演示文稿的查看器和编辑器,与OfficeOpenXML格式完全兼容.docx,.xlsx,.pptx,并支持实时协作编辑。文件在线编辑多人同时...O2OA Office在线协作模块,可以让使用者完全基于浏览器实现Office文档的在线编辑,协同编辑功能,不需要在本地安装WPS,Office等应用软件,可以对文档的访问,编辑权限进行详细地控制,文档编辑更高效,更安全。O2OA是一款以流程管理为核心的全开源全免费的信息化开发平台,完整的代码可以直接在Github和Gitee上下载,并且不需要支付任何费用,完全免费。
O2OA办公开发平台是基于J2EE分布式架构,集成移动办公、智能办公、支持私有化部署,并自适应负载能力的基于AGPL协议开放源代码的企业信息化系统需求定制开发平台解决方案,能够极大程度上节约企业软件开发成本。
在首页上的“平台下载”页面下,可以直接下载该平台,这篇文章主要介绍的是平台内置的Office在线协作功能。
功能概述:
office在线协作是o2oa和onlyoffice结合实现的一个在线办公套件,包括用于文本,电子表格和演示文稿的查看器和编辑器,与Office Open XML格式完全兼容:.docx,.xlsx,.pptx,并支持实时协作编辑。
功能介绍:
- 文件在线编辑
- 多人同时编辑,可自定义同时编辑人数
- 文件设有查看、编辑权限
- 支持word、excel、ppt
- 历史版本记录
- 支持加签、加星分组
默认服务器:
如果未安装自己的onlyOffice服务器,默认使用的是我们的公司的测试doc.o2oa.net上的服务器。
1.请确保您的服务器能访问到doc.o2oa.net。
2.您的o2server 是公网环境下,端口(默认80 ,20020 ,20030)外网是可以访问的。
3.根据需要关闭代理 config目录下node配置修改web中的两个代理proxyCenterEnable,proxyApplicationEnable配置为false
配置:
应用市场-office在线协作安装后就可以使用(注意:安装后需要重新编译数据表并重启服务器),“应用市场-office在线协作”使用的onlyoffice服务器是由o2oa在线服务所提供,如果想要使用自己的onlyoffice服务器,可以参考语雀文档
onlyoffice安装说明: onlyoffice安装介绍 · 语雀 《onlyoffice安装介绍》
json配置说明:office在线协助配置说明 · 语雀 《office在线协助配置说明》
onlyoffice添加字体:onlyoffice字体添加 · 语雀 《onlyoffice字体添加》
使用说明:
新建
点击右侧新建按钮可以选择要新建的文档类型:文件夹、word、excel、ppt。
新建后点击新建的文件名会在新窗口打开该文档进行编辑保存,注意:编辑界面使用的是onlyoffice控件本身的编辑界面,完美兼容office。可多人在线同时编辑。鼠标移动自动保存。
上传
除了新建的方式,我们也可以通过上传来传文件,点击右上角“上传按钮”,支持上传word、excel、ppt三种格式的文档。
点击右侧“
”图标可以对文档进行操作
下载
下载该文档
移动
把文档移动到其他文件夹下
复制到
把文档复制到其他文件夹下
重命名
给文档重新命名
删除
删除文档
标签设置
给文档设置标签
同时在线设置
设置文档同时在线人数,多余设置的人数时会提示再打开的用户当前文档已经超过了上限人数
添加星标
添加星标后可以在星标文件中查看
分享
把文档分享给公司内部其他人员,添加成员后默认该成员只有只读权限,可修改是否有修改文档的权限或者移除
历史版本
查看历史版本
属性
查看文档属性
(转自公众号:浙江兰德网络)
-
Office在线预览
2017-08-16 11:23:381、该代码使用SpringBoot框架实现了office文档的在线预览 2、主要包含两个接口,一个是office文档转化成pdf文档;一个是pdf文档的在线预览 3、由于调用了OpenOffice的接口进行文档转化,所以需要安装OpenOfiice,... -
docker 搭建在线office--onlyoffice (三)
2020-03-28 18:24:57配置onlyoffice -
docker 搭建在线office--onlyoffice (一)
2020-03-18 00:27:13最近项目需要在在线编辑文档功能,固考虑卓正pageoffice、onlyoffice、畅想office 获取docker 镜像 #查找 docker search onlyoffice #拉取 docker pull onlyoffice/documentserver 创建容器:挂载到了... -
【最新版】WPSOffice_2.2.0(3644).dmg【亲测可用】最好的多人实时协作的在线Office
2020-05-15 00:56:541.新增听写功能(Dictation),支持语音输入文本 2.支持创意裁剪,丰富模板一键套用,创意十足的图片三秒搞定 3.支持裁剪PDF中的图片 4.表格支持多选反选 5.状态菜单栏支持自定义文件传输动效 6.解决了部分用户编辑... -
office试题
2018-01-11 11:27:25office2010ksw。。。。。。。。。。。。。。。。。。。。 -
在线office编辑器
2011-05-26 11:32:13在线的网页office编辑器,是基于web开发的 -
office在线编辑ONLYOFFICE集成java和前端
2020-10-09 15:04:11office在线编辑ONLYOFFICE集成java和前端office在线编辑ONLYOFFICE集成java和前端office在线编辑ONLYOFFICE集成java和前端office在线编辑ONLYOFFICE集成java和前端office在线编辑ONLYOFFICE集成java和前端 -
一款非常好用的在线office插件
2019-08-12 17:52:34支持在线excel、word创建,编辑;兼容微软office,你值得拥有! 官网文档: https://api.onlyoffice.com/docbuilder/spreadsheetapi/api -
微软在线office online 使用时遇到的一些问题
2021-12-30 12:28:21使用的是路由https://view.officeapps.live.com/op/view.aspx?src=地址的方式在线预览的 office online 并没有对h5+ 和 app 的版本 如果是app内嵌可能会有无法缩放的问题 我是直接跳转手机内置浏览器 来使用的 然后... -
weboffice 在线office编辑器
2010-08-20 14:27:36基于网络的“WebOffice”协同办公平台与以往的办公自动化软件不同,它强调以个人工作内容为中心,贯穿着“享受无纸化办公,让工作变得更轻松”的协同设计理念,为信息传递提供简单、便捷的途径,将资源共享最大化;... -
【第三方对接】使用 PageOffice 实现在线 Office 整合到 Spring 项目
2020-10-22 10:29:00文章目录1、PageOffice 实现在线 Office(1)PageOffice 介绍(2)项目需求对比(3)基本整合过程(4)调用逻辑图(5)实际使用案例 1、PageOffice 实现在线 Office (1)PageOffice 介绍 PageOffice官网,在官网中... -
ONLYOFFICE-OnlineEditors:ONLYOFFICE-在线编辑器
2021-07-06 10:59:38ONLYOFFICE 在线编辑器是免费的开源编辑器,包括文本、电子表格和演示文稿的查看器和编辑器,是第一款基于画布的文档编辑器。 它们在浏览器、协作编辑和评论中提供最高的格式质量。 这个版本可以部署在你自己的... -
永中office文件在线预览
2020-04-19 09:56:36文件上传下载和预览,采用永中云转换进行文件预览,技术架构:springboot2+freemark2.26+tk.mybatis2.0.4+pagehelper1.2.12,为DEMO例子,功能仅有3块:增删改查、文件上传下载,永中office文件预览(就是个URL地址... -
docker+onlyoffice在线编辑office
2019-05-09 15:47:14在CentOS上使用docker搭建onlyoffice服务器,onlyoffice服务可实现浏览器在线查看编辑保存office文件包括(Word,Excel,PPT等),还可实现word转PDF -
onlyOffice实现office在线编辑java和前端demo
2022-02-17 10:51:50ONLYOFFICE集成java和前端 -
OfficeWeb:Office在线预览编辑插件JavaWeb实例
2021-04-15 06:43:49Office在线编辑保存-Java版本 结合WebOffice编写的Doc,Excel文件在线编辑预览 环境: WebOffice V6.0.3.0 控件 DES电子印章系统 V4.2.4.4 客户端设备必须安装以上插件(只支持windows客户端) IE内核浏览器且需要... -
WebOffice在线编辑痕迹保留JAVA
2020-09-22 16:16:10目前WebOffice使用比较多主要有三个公司的产品,分别是江西金格(iWebOffice)、...WebOffice是一款由北京点聚信息技术有限公司提供的完全免费(商业用途也免费)且功能强大的在线Word/Excel/PowerPoint/WPS辅助控件