今天在同事负责的项目中无意间看到一个新颖的功能,点击链接直接以word格式打开,然后感兴趣的追问了下实现方式,看了示例很简单,而且直接页面端js就可调用成功,效果很不错,目前遇到项目还没有类似的应用和需求,不过可以积累一下,以后有相似功能那就是来者不拒,可以更全面的分析页面实现深度。

在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于“Program Files\Microsoft Office\OFFICE11\owssupp.dll”。通过这个控件,客户端页面上的JavaScript就可以激活本地的Office软件,来实现打开、编辑Office文档。(另,Office XP应该就已经包含这个ActiveX控件了。)

  首先,用Script创建一个本地的对象:

  openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2"); // 为了兼容Office XP,可以创建“SharePoint.OpenDocuments.1”

  然后,调用openDocObj的相应的方法。比如打开服务器上的一个Office文档:

  openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc");

  openDocObj对象会根据参数中不同的Office文档类型(.doc、.xls、.ppt)来打开不同的程序(Word、Excel、PowerPoint)。ViewDocument()方法还有一个重载签名,可以让我们手工指定激活哪个程序来打开文档:

  openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc", 要激活的程序的ProgID);

  那么要打开Office程序在线编辑文件又如何?

  openDocObj.EditDocument("http://www.abc.com/documents/sample.doc");

  就可以直接激活Word,在Word里面编辑文档,然后直接点击Word里面的保存功能,就可以将文件保存会服务器上了。注意:为了让Word能将编辑后的文档直接保存会服务器,访问Web站点的当前上下文的Windows Identity必须对服务器的相应目录(即“http://www.abc.com/documents”这个虚拟目录所对应的服务器上的物理路径)有相应的写权限,否则保存动作会失败。编辑完成后,EditDocument()会返回一个bool值,来反映编辑操作是否成功。

  我们还可以通过打开服务器上的一个文档模版,来创建一个新的文档:

  openDocObj.CreateNewDocument("http://www.abc.com/documents/sampleTemplate.dot", "http://www.abc.com/documents/");

  就可以使用“http://www.abc.com/documents/sampleTemplate.dot”这个模版来创建一个新的文档,默认新文档的保存地点是“http://www.abc.com/documents/”。创建新文档时使用的程序取决于模版文件的类型(比如.dot模版会对应Word)。新文档的保存同样需要注意权限问题。CreateNewDocument()方法同样会返回一个bool值来反映操作是否成功。

  CreateNewDocument()方法的第一个参数,除了可以使用一个模版的地址外,还可以直接指定为希望用来创建新文档的客户端程序的ProgID。

JS实现Office在线编辑和浏览(实用)相关推荐

  1. office在线编辑(java)原生完美体验,不需要重新适应新的编辑方式

    我们可以通过easy-office来实现在线编辑word,excel,power point并集成到自己的网站里去. 1 准备工作 1.1 操作系统 服务器可以为linux和windows皆可, 用户 ...

  2. 基于SSM 的 Office 在线编辑

    Office在线编辑功能在OA系统中经常被使用.本文主要介绍在SSM框架下利用Java整合Office Online Server 2016 (OOS) 进行office 在线编辑.OOS的环境搭建之 ...

  3. DocSys的Office在线编辑配置

    一.准备工作 1.安装DocSys 具体详见:DocSys安装说明 2.安装OnlyOffice DocumentServer 具体详见:OnlyOffice DocumentServer安装说明 二 ...

  4. office在线编辑功能。

    1.需求:在线编辑office文档 2.解决办法:一.使用chrome插件,谷歌文档插件.(问题不能编辑图片,格式可能有问题.) 二.office web apps 服务(未实现). 三,ONLYOF ...

  5. 基于Office Online Server 2016 的 office在线编辑

    基于Office Online Server 2016 的office在线编辑 1.硬件要求 微软要求实现OfficeOnline Server 需要安装WindowsServer 2012 R2 操 ...

  6. office在线编辑ONLYOFFICE集成java和前端

    准备: onlyoffice/documentServer在线编辑保存 启动一个documentServer的容器 docker run -it --name documentServer -d -p ...

  7. ntko office在线编辑控件问题记录

    ntko office在线预览插件 http://www.ntko.com/ 问题:火狐或谷歌下保存报[没有打开的文档]错误,ie正常 原因:火狐.谷歌.ie的各方法执行文字不同,ie嵌在页面,而火狐 ...

  8. java office在线编辑_国外10个最受欢迎的 Java 开发的 CMS 系统

    CMS是Content Management System的缩写,意为"内容管理系统",它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本.CMS的功能并不只限于 ...

  9. vue office在线编辑_多人协同、AI 协作……未来的 Office 有这些「黑科技」

    最近几个月里,「远程办公」成为了很多人的新选择.远程办公中,在线文档对于大多数公司来说都是必需品.多人协作.自动保存.无需下载客户端-- 这些优势让在线文档逐渐受到人们的青睐. 面对这样一个潜力巨大的 ...

最新文章

  1. kettle连接不上es7_kettle8.2连接ElasticSearch7
  2. [Visual Studio+TFS--强大的项目管理工具]
  3. 大数据时代,数据科学都有些啥?
  4. java密码框提示_[Java教程]如何实现在密码框如出现提示语
  5. 媒体查询笔记、 @media
  6. 百度刷新世界级权威DeepFake防伪数据集榜单记录,成绩超越SOTA
  7. 精度P,召回率R和F值
  8. JAVA-1011. A+B和C (15)
  9. python管理数据库的库_Python中管理数据库
  10. java 算法 福尔摩斯的约会
  11. 面向机器学习的特征工程 一、引言
  12. 易语言空壳程序360误报测试解决方法
  13. 数据库学习笔记6-隔离级别 Serializable
  14. 《受欢迎的奶牛》和强连通分支Tarjan算法
  15. 软考软件设计师下午题目java设计模式(自用)
  16. Kaggle泰坦尼克号船难--逻辑回归预测生存率
  17. 西安职业中等专业学校计算机专业,西安实验职业中等专业学校毕业及就业介绍...
  18. PyCharm关闭更新提示
  19. 5. 文件上传下载 与 db数据库
  20. Java学习个人总结

热门文章

  1. c语言从键盘输入asdfg输出asdfg,西南财经大学2009级C语言程序设计期末试题.pdf
  2. 一文详解亚马逊FBA物流的计算方式-跨境知道
  3. 华为云数据湖工厂服务DLF
  4. cocos API 中文
  5. oracle11客户端 oui.exe已停止工作,Windows Oracle 打patch(11.2.0.4)错误OUI-67073
  6. 9. 谁说技术分享博客,就不能收费了?知识本来就该被定价
  7. 蓝牙遥控超声波避障智能小车(stm32f407vet6)
  8. 八小时之内、八小时之外
  9. 直放站OMT调试工具
  10. ios的开发语言是c,iOS应用开发语言C++和C的区别