当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net 在线编辑word文档 可保存到服务器

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

朱彦瑾,4月节日,v刹和碟刹的区别

注意:你要打开的服务器端的word文档要有写权限。iis要开起 web服务扩展中的webdav为允许

具体参考文档msdn:

原理:通过 javascript 创建一个activex控件实例(为浏览者机器program files\microsoft office\office11\owssupp.dll或program files\microsoft office\office10\owssupp.dll)就可以激活本地的office软件,来实现打开、编辑office文档

首先,用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。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网