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

news/2024/7/21 5:14:03 标签: Office, Web, SharePoint, XP, Excel

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


http://www.niftyadmin.cn/n/763281.html

相关文章

Java中ThreadLocal的设计与使用

Java中ThreadLocal的设计与使用<script src"http://www.weste.net/js/info_ad_05.js" type"text/javascript"></script> <iframe width"336" scrolling"no" height"280" frameborder"0" marginhei…

Visual SourceSafe简明培训教程

名称Visual SourceSafe简明培训教程 (Visual SourceSafe Training Short Course) 作者晨光&#xff08;Morning&#xff09; 简介对于采用Visual SourceSafe 6.0作为版本控制工具的项目及产品开发&#xff0c;本教程针对不同用户角色&#xff0c;提供有关该软件的若干使用指导…

oracle分析函数

oracle分析函数--SQL*PLUS环境 --1、GROUP BY子句 --CREATE TEST TABLE AND INSERT TEST DATA. create table students (id number(15,0), area varchar2(10), stu_type varchar2(2), score number(20,2)); insert into students values(1, 111, g, 80 ); insert into student…

truncate,delete,drop的比较

truncate,delete,drop的比较. 注意:这里说的delete是指不带where子句的delete语句 相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发…

动态加载JS脚本的4种方法

要实现动态加载JS脚本有4种方法&#xff1a;1、直接document.write <script language"javascript">document.write("<script srctest.js><\/script>");</script>2、动态改变已有script的src属性 <script src id"s1"&…

一饭养恩,斗米养仇

一饭养恩&#xff0c;斗米养仇。此话是从社会行为学的老师口里听到的&#xff0c;讲的是人的惯性&#xff0c;当你不断的施恩于一个人的时候&#xff0c;这个人会把你的恩惠当成一个习惯&#xff0c;就并不觉得你再帮他了&#xff0c;当你不再施恩于这个人的时候&#xff0c;反…

谈谈职业素质

在公司上班少不了要给同事经常发些email&#xff0c;就像发表一些官方的发言一样需要使用公司语言&#xff0c;如果某个同事得罪了你&#xff0c;你可千万别急&#xff0c;更不要在邮件中发泄&#xff0c;搞不好邮件会被转发到老总的信箱里&#xff0c;比如管行政的同事问你笔记…

框架设计的定义

《设计模式》中对框架的定义是框架就是一组相互协作的类&#xff0c;对于特定的一类软件&#xff0c;框架构成了一种可重用的设计。软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构&#xff0c;不同领域的软件项目有着不同的框架类型。框架的作用在于&a…