asp.net操作office中的word

zhantianyou 2009-05-16 10:14:24
各位高手,請問我如何可以在我的asp.net上直接打開服務器上的office文檔進行編輯保存呢??網上找了,好多人說使用dsoframe.ocx這個東西,但是不會用.
急救!!!!!
3Q!
...全文
128 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyaspnet 2009-05-21
  • 打赏
  • 举报
回复
学习
plglenn 2009-05-17
  • 打赏
  • 举报
回复
d
lextm 2009-05-17
  • 打赏
  • 举报
回复
楼上的各位自然是贡献了一些方法,但是请楼主注意微软官方对于此类的问题已经有了很好的解答,

http://support.microsoft.com/kb/257757

假如你确实是计划在服务器端做Office自动化,那么请考虑一下你的处境,毕竟这样做是微软不推荐,也不给予技术支持的情况。

由于文中已经给出了很多供你考虑的其他方式,请仔细研究。
zhantianyou 2009-05-16
  • 打赏
  • 举报
回复
這是網站要加的一個功能,有什麽好辦法沒??高手????
the word file,excel or powerpoint file can be edit directly by clicking the link.
the user no need to download and upload.
after edit the file,the system will update the content in the file automatically.
lopps 2009-05-16
  • 打赏
  • 举报
回复
·双线主机 100M/35元/年,免费送数据库(自选MY/MSSQL)
·详情请访问:http://www.515dns.com
正宗熊猫哥 2009-05-16
  • 打赏
  • 举报
回复
dsoframe.ocx 需要注册。并且降低你的IE安全设置。启用ACTIVEX控件。

这个很难用,很多机器用不了
zhantianyou 2009-05-16
  • 打赏
  • 举报
回复
正常想要就是點擊後能顯示一個word頁面,現在點擊了,沒這東西啊
shadow841112 2009-05-16
  • 打赏
  • 举报
回复
什么都没有是什么意思?能截图吗?
有可能是因为你的IE安全权限问题,设置权限ActiveX类别下的一些项,默认有一些是禁止的。
zhantianyou 2009-05-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shadow841112 的回复:]
HTML code<scripttype="text/javascript">openDocObj=newActiveXObject("SharePoint.OpenDocuments.1");//为了兼容Office XP,可以创建“SharePoint.OpenDocuments.1”</script><asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="查 看"/><asp:ButtonID="Button2"runat="server"OnClick="Button2_Click"Text="编 辑"/>
C# codeprotectedvoidButton1_Click(objectsender, EventArgs e)
{
Client…
[/Quote]
樓上的高手,為什麽我執行你這個方法,雖然不會出錯,當為什麽沒有把該文檔打開出來,什麽也沒有
zhantianyou 2009-05-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zzxap 的回复:]
在线编辑word文档 可保存到服务器
使用说明:该方法只在office xp 和 2003上 测试通过,2000及以下 版本没试。
注意:你要打开的服务器端的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\Microso…
[/Quote]
樓上的,不知是那裏弄錯了

我在javascript創建這個對象時,就有問題.執行不下
openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2");
shadow841112 2009-05-16
  • 打赏
  • 举报
回复

<script type="text/javascript">
openDocObj = new ActiveXObject("SharePoint.OpenDocuments.1"); // 为了兼容Office XP,可以创建“SharePoint.OpenDocuments.1”
</script>

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="查 看" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="编 辑" />


protected void Button1_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "", "openDocObj.ViewDocument('http://192.168.1.104/Test/1.doc');", true);
}

protected void Button2_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "", "openDocObj.EditDocument('http://192.168.1.104/Test/1.doc');", true);
}
zzxap 2009-05-16
  • 打赏
  • 举报
回复
在线编辑word文档 可保存到服务器
使用说明:该方法只在office xp 和 2003上 测试通过,2000及以下 版本没试。
注意:你要打开的服务器端的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\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。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1572382

中年秃头大叔 2009-05-16
  • 打赏
  • 举报
回复
帮顶
wptad 2009-05-16
  • 打赏
  • 举报
回复
对,要好好研究一下WORD接口,有点复杂,但是功能很强大,非常灵活
mengxj85 2009-05-16
  • 打赏
  • 举报
回复
先下载再上传最简单

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧