有朋友询问如何在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。

原文链接

如何在Web页面上直接打开、编辑、创建Office文档 (转载)相关推荐

  1. [ZZ]如何在Web页面上直接打开、编辑、创建Office文档

    [作者:kaneboy,来源:博客堂] 有朋友询问如何在Web页面上做到像SharePoint中的效果一样,能直接激活客户端的Word来打开.doc文件,而不是类似直接点击.doc文档链接时Word在 ...

  2. web使用openoffice实现在线预览office文档

    最近搞web项目,使用框架struts+spring+jpa实现,做到项目里面一个在线预览功能,试过无数的方法,最后得到了一个非常使用的方法,这方法也是我看过多篇博客的出来的,仅限参考. 效果图如下: ...

  3. pageoffice 骑缝章_pageoffice实现网页打开编辑保存word文档(基于SSM框架)

    pageoffice是一款网页集成word.excel...等office工具 并不免费,但可以试用练习 SSM框架搭建过程就省略了 注意:由于谷歌/火狐升级,不支持插件嵌入,建议使用POBrowse ...

  4. linux上php读取和创建word文档

    总结下本人在日常工作中使用php操作word的一些实战. 方法一:利用php com模块.也即利用word提供的本地api,所有只适用于windows系统上. [php] view plaincopy ...

  5. c#web页面显示弹窗_C#监听IE文档加载完成、弹窗、JS弹窗、页面跳转

    这个Demo在早段时间有个网友需要做一个相关方面的软件,我给做出来的.很方面,在JS弹窗监听上耗了不少时间.现在均已解决!请勿用作非法商业用途,该软件产生的后果与作者本人无关,特此声明. 由于需要对H ...

  6. Office Online Server 在线编辑Office文档,安装部署

    一.Office Online Server介绍 Office Online Server是 Office Web Apps Server 的升级版本,安装环境必须为两台Windows Server ...

  7. 基于WEB的Office文档打印——浏览器中静默打印Word文档

    web应用开发中,如何集成Office文档打印功能,并不是一个容易实线的问题.现在有了打天下web打印插件,仅以几行JS代码就可以让你将Office打印功能集成到你的Web项目中. 引入PrintWo ...

  8. 如何把python可视化到前端_python数据可视化的效果如何在web页面中展示_北京可视化股票...

    有什么APP可以展示可视化的任务进度 可视化任务进度软件,使用敬业签,具体可视有事项开始时间,进度及人.还有结束时间以及人员处理速等等,更多功能如下: 1.敬业签是一款功能比较全面的桌面便签软件,分为 ...

  9. python网页提交表单_Html表单——使用python在web页面上显示用户提交的数据

    这个例子展示了如何使用Python完成同样的事情--在web页面上显示提交的数据. 环境配置: win10.Anaconda3 问题: 1.在安装Anaconda3的时候出现了很多问题,经建议安装旧版 ...

最新文章

  1. android 自定义模板下载,android studio 自定义模板
  2. 【Kaggle-MNIST之路】CNN结构改进+改进过的损失函数(五)
  3. 初等数学O 集合论基础 第六节 商集
  4. [转]大话企业级Android应用开发实战 音乐播放器的开发
  5. java反射减少servlet_利用java 反射机制来实现一个servlet处理多种请求
  6. 微软职位内部推荐-Software Development Engineer 2
  7. 使用 Akka 实现 Master 与 Worker 之间的通信
  8. QPainter的使用
  9. tkinter中text插入_tkinter做一个体重档案
  10. 如何在映像更改后升级docker容器
  11. NYOJ477 - A+B Problem III
  12. Introducing Blackle, the energy saving search
  13. Luogu1390 公约数的和
  14. 学习廖雪峰 Git 总结
  15. 我所理解的网络游戏一:网游的顶层设计
  16. 鸿蒙应用开发学习1——应用完整开发流程
  17. 程序员需谨记的8条团队开发原则
  18. HDu--我要拿走你的蜡烛
  19. 互联网公司常用术语简写
  20. 多周期时间序列分解算法——MSTL原理

热门文章

  1. exchange 只发送邮件 不能登录_springboot + rabbitmq发送邮件
  2. 2020-12-29 Linux查找某一关键字在哪个文件
  3. python3网上学习资源汇总
  4. android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...
  5. 面试题整理 1:将一个字符串转换为整数
  6. 谷歌OKR指导手册 (译)
  7. 趣文:如果网络浏览器是妹纸
  8. Java容器集合类的区别用法
  9. 练字究竟练的是什么?
  10. Oracle编程入门经典 第10章 PLSQL