如何在Web页面上直接打开、编辑、创建Office文档

原创 2007年09月17日 10:12:00

如何在Web页面上直接打开、编辑、创建Office文档

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

 

office web app实现文档的预览编辑

最近项目中需要用到office文件在线编辑功能,然而很多解决方案都是收费的,于是决定采用微软免费的microsoft office online 2016和wopi 协议来实现。wopi 协议 W...
  • yufeiyanliu
  • yufeiyanliu
  • 2017年04月18日 12:09
  • 3905

自定义开发的系统整合 office Web apps

其实网上有关office web app的整合已经有相关的文章了,典型的是如何整合Office Web Apps至自己开发的系统(一) 和如何整合Office Web Apps至自己开发的系统(二)...
  • jason_dct
  • jason_dct
  • 2017年01月18日 17:14
  • 2577

手机客户端在Web页面上事件触发打开Word

在WebView上远程访问Web服务,Web服务上点击链接,打开Word文档并可编辑 public class WebViewUI extends Activity{ private WebVie...
  • danielinbiti
  • danielinbiti
  • 2013年12月23日 16:16
  • 2939

在线文档预览方案-office web apps

我只是转载一下,免得原作者删除后没得看了! 最近在做项目时,要在手机端实现在线文档预览的功能。于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览。这些方案没有具体实现代码,也没有...
  • yjclsx
  • yjclsx
  • 2016年05月24日 14:40
  • 4513

WebOffice在线编辑ActiveX插件(Excel,word等),兼容IE,FireFox,Chrome等浏览器

关于点聚的weboffice ActiveX插件的使用在IE下只需要安装对应weboffice.ocx插件即可实现在线文档编辑。对于非IE如谷歌、火狐浏览器来说就有些不同了的,如果想要兼容谷歌和火狐需...
  • replace_
  • replace_
  • 2016年12月27日 09:11
  • 7411

Java Web项目中使用Freemarker生成Word文档

Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob、Apache POI、Java2Word、iText等各种方式,其实在从Office 2003开始,就...
  • jackfrued
  • jackfrued
  • 2014年09月21日 15:33
  • 63620

根据文件MIME类型打开文件

import android.content.Context; import android.content.Intent; import android.net.Uri; import androi...
  • philofly
  • philofly
  • 2016年02月15日 22:26
  • 1121

如何在IE页面上显示和编辑流程图

如何在IE页面上显示和编辑流程图    2009-03-02 22:12:13|  分类: 工作流|字号 订阅 在Web 要实现地图,流程图,涂鸦等功能的时候,可以...
  • lvfanqie
  • lvfanqie
  • 2013年08月21日 17:19
  • 705

PowerPoint出现“受保护的视图,Office已检测到该文件存在问题。编辑此文件可能会损坏您的计算机。”的提示

打开一个ppt,有事会出现“受保护的视图,Office已检测到该文件存在问题。编辑此文件可能会损坏您的计算机。”的提示,如下图所示: 原因: 来自 Internet 和其他可能不安全位...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年03月14日 19:12
  • 14188

DzzOffice结合office web Apps私有部署的实例

很多朋友都想在自己使用的DzzOffice中,调用本地部署的office web Apps server。 下面我就直接从头到尾的将部署全部过程分享给大家。   准备条件:两台服务器...
  • nabi123
  • nabi123
  • 2014年08月26日 16:16
  • 967
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在Web页面上直接打开、编辑、创建Office文档
举报原因:
原因补充:

(最多只允许输入30个字)