有朋友询问如何在Web页面上做到像SharePoint中的效果一样,能直接激活客户端的Word来打开.doc文件,而不是类似直接点击.doc文档链接时Word在IE中被打开那样。想想这个问题应该很多人都会感兴趣,所以干脆写一篇blog来大致描述一下方法。

在安装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。

点击链接时直接在网页中打开word文档相关推荐

  1. 在web网页中打开word文档

    1:首先添加下引用,右击网站→添加引用→弹出的框COM下添加 using Microsoft.Office.Interop.Word; using System; using System.Colle ...

  2. 网页中打开word文档

    前台代码打开: <html> <head> <title>my youth</title> <meta http-equir="cont ...

  3. 调试经验——使用VBA在Excel中打开Word文档(Open Word file in Excel with VBA)

    VBA的一个强项是可以跨应用操作,特别是在office各程序内部.以下代码实现了在Excel中打开Word文档. 代码: Sub openWord() '在Excel中打开Word文档 ' 'Dim ...

  4. PageOffice如何控制在系统中打开Word文档只读

    PageOffice如何控制在系统中打开Word文档只读 在文档系统有些环节需要限制用户编辑word文件,只许查看,那么如何实现用程序控制文件打开的时候,用只读模式打开呢?若通过PageOffice开 ...

  5. 使用windows activeX 在Webclient UI 中打开word文档

    Created by Jerry Wang, last modified on May 23, 2014 在view page是使用如下source code: 在UI component workb ...

  6. java在浏览器打开word,如何直接在浏览器中打开word文档

    acid when i run this the word document is not opening in a browser 解决方案 By default browser does not ...

  7. 使用Excel中的插入对象功能在Excel中插入Word文档

    使用Excel中的插入对象功能,就可以很容易地在Excel中插入Word文档. 具体操作步骤如下: 1.打开要插入Word文档的Excel电子表格文件. 2.单击要插入Word文档的单元格,然后选择菜 ...

  8. 在HDWiki中插入word文档的方法

    HDWiki是中国第一家拥有自主知识产权的中文WIKI系统,它的功能十分强大,而且设计也很合理,现在也十分受欢迎,但美中不足的就是HDwiki的排版功能,文章排版后效果很差. 在此介绍一种在HDWik ...

  9. Word处理控件Aspose.Words功能演示:使用C#在电子邮件正文中发送Word文档

    电子邮件正文的呈现是吸引读者的重要因素之一.因此,电子邮件使用标题,子标题,表格,图像等进行了很好的格式化.但是,大多数内置的电子邮件编辑器不提供高级格式化选项.为了解决此限制,本文介绍如何使用Wor ...

  10. word2013插入excel对象报错_使用Excel中的插入对象功能在Excel中插入Word文档

    使用Excel中的插入对象功能在Excel中插入Word文档 时间:2016-05-17   作者:snow   来源:互联网 使用Excel中的插入对象功能,就可以很容易地在Excel中插入Word ...

最新文章

  1. python文件句柄_Python文件操作
  2. Poisson Image Editing 泊松融合 matlab代码完整
  3. CentOS 7磁盘分区及文件系统管理
  4. mysqld: [Warning] World-writable config file ‘/etc/my.cnf‘ is ignored.问题解决
  5. 记录一举一动:PowerShell几行代码实现定期屏幕截屏
  6. Zabbix Agent2监控redis
  7. cmd命令行开启windows远程桌面服务
  8. 初读《Linux运维之道》浅见
  9. c++ CImage类的常用命令
  10. python chardet模块_使用Python chardet模块解决中文乱码问题
  11. win7修复计算机有密码,win7系统恢复选项密码
  12. 荐书:「时差党」——出国留学不是一件容易的事
  13. 数据结构学习问题集结
  14. win7访问XP或者2003共享,提示密码错误的解决办法
  15. 07蚂蚁-高并发解决方案——1.Hystrix服务降级,服务隔离,服务熔断,服务限流,CDN
  16. WordPress升级后,新版编辑器不能使用解决办法
  17. 宝塔面板部署nuxt项目线程守护启动以及Nginx反向代理
  18. 等式约束问题-拉格朗日乘子法
  19. 用Java实现简易计算器
  20. java是编译型语言还是解释型语言?

热门文章

  1. H264---H.264/AVC 的各大主流编解码器JM、x264、Xvid、T264、ffmpeg、ffdshow + JMHM源码分析
  2. 海洋网络收音机海洋影音盒
  3. python 读写三菱PLC数据,使用以太网读写Q系列,L系列,Fx系列的PLC数据
  4. 滤波器截止频率理解?
  5. 什么是分布式操作系统?有哪些优缺点?
  6. 如何利用python监控主机存活并邮件、短信通知
  7. 公安机关计算机网络安全协议,计算机信息网络国际联网单位网络安全协议合同范本...
  8. 数据库学习--数据库基本概念
  9. 微软drive服务器,OneDrive:微软云存储服务
  10. 计算机网络——常用的网络命令