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

如何在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。

(0)

相关推荐

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

    如何在Web页面上直接打开.编辑.创建Office文档  有朋友询问如何在Web页面上做到像SharePoint中的效果一样,能直接激活客户端的Word来打开.doc文件,而不是类似直接点击.doc文档链接时Word在IE中被打开那样.想想这个问题应该很多人都会感兴趣,所以干脆写一篇blog来大致描述一下方法. 在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于"Program Files\Microsoft Office\OFFICE11\owssupp.d

  • 使用CamanJS在Web页面上处理图像的技巧

    你可能会想问既然CSS已经有现成的功能可以支持基础的图像操作了,为什么我们还会想要为此使用一个像这样的 JavaScript 库呢. 好吧,除了有浏览器的支持,使用 CamanJS 有许多的好处.它为我们操作图像提供了更多的过滤器和选项.你可以在你的图像中创建高级过滤器,进而控制其中的每一个像素.你可以使用其内置的混合模式和图层系统.而它也能让你进行图像的跨域操作,并可以对操作产生的图像进行保存. 现在,就让我们来开始探索 CamanJS 所提供的特性吧! 引入必要的文件 要开始使用 Caman

  • Office文档在线编辑的一个实现方法

    Office xp之后的版本支持通过webdav协议(http的扩展)直接编辑服务器上的文件. IIS(6.0)支持webdav,这在IIS管理器的web服务扩展中可以看到.利用IIS作为webdav的服务器端,可以很容易的实现office(word,excel等)的在线编辑. 可以简单的实验一下: 确保IIS的webdav扩展安装并被启用了,建立一个虚拟目录test,在其中放一个word文档a.doc,然后打开word, 文件->打开->输入word文档的访问url(http://local

  • ASP.NET Web API如何将注释自动生成帮助文档

    ASP.NET Web API从注释生成帮助文档 默认情况下,ASP.NET Web API不从Controller的注释中生成帮助文档.如果要将注释作为Web API帮助文档的一部分,比如在帮助文档的Description栏目中显示方法注释中的summary,需要进行一些配置操作. 首先在Visual Studio中打开Web API项目的属性页,在Build设置页,选中XML document file,输入将要生成的XML文件放置的路径,比如:App_Data\OpenAPI.XML. 然

  • Android 下载并打开PDF,Doc,Dwg文档实例

    今天项目中遇到这样一个需求 ,根据后台接口里pdf,doc,dwg文档的地址 是一个URL ,需要根据文档的url 下载到本地(内部存储或内存卡)并用手机中能打开该文档的软件弹出来并打开,(这里需要做一个缓存,第一次查看这个文档是在服务器上下载并打开,以后打开不需要下载直接打开本地的文档)在网上找了些资料 写了以下代码,下面分享给大家; 效果图: 代码: 这是一个单独的类 首先接收intent传过来的url我是用url的后14位作为存储本地的文件名(这里根据自己服务器的文件命名规则而定) 拿到文

  • Java在web页面上的编码解码处理及中文URL乱码解决

    编码&解码  通过下图我们可以了解在javaWeb中有哪些地方有转码: 用户想服务器发送一个HTTP请求,需要编码的地方有url.cookie.parameter,经过编码后服务器接受HTTP请求,解析HTTP请求,然后对url.cookie.parameter进行解码.在服务器进行业务逻辑处理过程中可能需要读取数据库.本地文件或者网络中的其他文件等等,这些过程都需要进行编码解码.当处理完成后,服务器将数据进行编码后发送给客户端,浏览器经过解码后显示给用户.在这个整个过程中涉及的编码解码的地方较

  • 编写Python脚本使得web页面上的代码高亮显示

    做了一个在线代码高亮的项目,强大的Python一如既往没让我失望,一个强大的Pygments模块可以对多种(很多)语言进行代码高亮 下面来介绍一下它: 首先安装很简单,使用easy_install来进行安装: easy_install pygments 安装完后我们来使用,Python的简单不会让大家失望: from pygments.lexers import PythonLexver from pygments.formatters import HtmlFormatter from pyg

  • jsp页面中显示word/excel格式的文档的方法

    word页面只要在jsp头设置如下指令: 复制代码 代码如下: <%@page contentType="application/msword;charset=GBK" %> excel如下: 复制代码 代码如下: <%@page contentType="application/vnd.ms-excel;charset=GBK" %>

  • 分享js粘帖屏幕截图到web页面插件screenshot-paste

    在很多场合下,我们可能有这样的需求:提供个屏幕截图上传到系统,作为一个凭证.传统的操作方式是:屏幕截图,保存文件到本地,在web页面上选择本地文件并上传,这里至少需要三步.有没有可能直接将截图粘帖到web页面上,然后上传?答案是:可以的.这就是本文要介绍的内容了. 由于我的项目有上传屏幕截图这样的需求,为了用户体验更佳,减少操作步骤,我在网上搜了一遍之后,找到了一些眉目.为了便于复用和共享,我又对该功能做了一些封装,于是便有了这个插件 screenshot-paste.运行效果如下图: 插件调用

  • asp.net 在线编辑word文档 可保存到服务器

    注意:你要打开的服务器端的word文档要有写权限.iis要开起 web服务扩展中的webdav为允许 具体参考文档msdn:http://msdn2.microsoft.com/en-us/library/ms454230.aspx 原理:通过 javascript 创建一个ActiveX控件实例(为浏览者机器Program Files\Microsoft Office\OFFICE11\owssupp.dll或Program Files\Microsoft Office\OFFICE10\ow

随机推荐