iCeSnaker - Program rhapsody
谱写程序的狂想曲
posts - 49, comments - 263, trackbacks - 9, articles - 13
如何在Web页面上直接打开、编辑、创建Office文档
Posted on 2004-11-11 21:18
iCeSnaker
阅读(1548)
评论(5)
编辑
收藏
所属分类:
C#
有朋友询问如何在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。
来源:搜索了一下才知道是
KaneBoy
大虾的文章,仰视之:)
Feedback
#1楼
回复
引用
2004-12-13 16:21 by
岑灿坤 [未注册用户]
不错挺好的
#2楼
回复
引用
2005-07-15 08:50 by
bb [未注册用户]
为什么打开的总是只读文档,保存不到服务器
#3楼
回复
引用
2005-08-24 17:25 by
xieyg [未注册用户]
但这是用客户端的Word打开WORD文件,能否在IE窗体内打开WORD文件?请指教.
#4楼
回复
引用
2005-09-22 00:34 by
gzkiko [未注册用户]
标题跟内容刚好反了
#5楼
回复
引用
2005-10-11 11:44 by
lisa821027 [未注册用户]
在vb.net里面应该怎么实现这个功能呢?
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
博客园首页
新闻频道
社区
小组
博问
网摘
闪存
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2004-11-11 21:26 编辑过
成果网帮您增加网站收入
相关文章:
automation服务器不能创建对象
如何在Web页面上直接打开、编辑、创建Office文档
[转载]如何在Web页面上直接打开、编辑、创建Office文档
[ZZ]如何在Web页面上直接打开、编辑、创建Office文档
如何在Web页面上直接打开、编辑、创建Office文档
关于:以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
相关链接:
所属分类的其他文章:
如何在Web页面上直接打开、编辑、创建Office文档
readonly vs. const [C#]
使用C# 进行Outlook 2003 编程的简介
在C#中调用VBScript、JavaScript等脚本的实现
使用C#控制远程计算机的服务
给.NET中的Windows窗体加载Xp样式
最新IT新闻:
淘宝与微软总部达成首次合作 Silverlight加入店铺
苹果9日发布iTunes 8、iPhone 2.1和第四代iPod Nano
微软出品8GB蓝色和120GB Zune播放器
千亿美元市值榜:微软居首移动第二 诺基亚退榜
Google申请“海上数据中心”专利 可能付诸行动
Powered by:
博客园
Copyright © iCeSnaker
导航
博客园
首页
新随笔
联系
订阅
管理
公告
微软提供的免费计数器
人的命运是像云彩一样随风飘流呢,还是说云彩它自己选择了飘流的方向呢,我还不太清楚,无论是那种情况,它们都可能会飘往同一个地方,但是如果选择了后者的话,人会朝着自己的人生目标而不断地努力,而拥有这种想法的人才是真正的强者。
MSN: iCeSnaker@msn.com
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(10)
给我留言
查看留言
随笔分类
.Net Framework
C#(18)
Database(2)
InfoPath(1)
Longhorn(1)
Misc(18)
Software Engineering(2)
Software Testing(5)
随笔档案
2005年1月 (3)
2004年12月 (2)
2004年11月 (3)
2004年10月 (2)
2004年9月 (5)
2004年8月 (5)
2004年7月 (20)
2004年6月 (4)
2004年4月 (5)
文章分类
Algorithm(7)
C#(6)
文章档案
2004年11月 (2)
2004年9月 (8)
2004年8月 (3)
Community&Personal
ASP.Net
CodeProject
CSDN
Eastasp(电子书)
Experts-exchange
GameRes文档中心
Microsoft下载中心
MSDN
NetYi(电子书)
Planet-Source-Code.com
S.SITE.ORG
SourceForge
Theserverside
最新评论
1. re: BLOWFISH算法
我现在做一个项目,要把blowfish算法移植到51单片机上去,网上找的源代码是C语言的,可以正确执行,但是但我把它移植到51上,用KEIL编译后 烧到51单片机里,加密解密得到的结果是不正确的,兄弟...
--张一可
2. re: 使用C# 进行Outlook 2003 编程的简介
Hi,我们这边正在开发一个outlook 2007的plug-in(VS2005 C#),开始的时候,我们也认为.net下是不需要对com对象释放的,但是我们在开发都后期的时候,发现在outlook ...
--Danial
阅读排行榜
1. DataGrid资料(34591)
2. C#中为DataGrid添加下拉列表框(9775)
3. 发帖子谢谢JohnnyHu(7916)
4. 两个桌面主题(5474)
5. Longhorn 4074手记(4865)
评论排行榜
1. 发帖子谢谢JohnnyHu(32)
2. DataGrid资料(28)
3. 呐喊 -- 希望博客圆一直是世外桃源(22)
4. [讨论] 制作博客园年刊(19)
5. Longhorn 4074手记(19)