打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#在winForm里嵌入office
C#在winForm里嵌入office
分类: C#2012-04-11 14:40 2543人阅读 评论(0)  举报
winformc#officewebbrowsermicrosoftwindows
由于公司的需要,上司让我研究如何在C#里控制office,主要是word。首先要先了解如何在winForm里嵌入office,一开始找了非常多的贴子,大多数是说在microsoft webbrowser里打开office文档即可,具体操作参见http://support.microsoft.com/kb/304662/zh-cn里面有详细流程,可是在本人亲测下,却发现没有那么简单(本人笔记本操作系统win7,64位,ie9),具体不知道在哪里设置,在打开word文档的时候,总是会出现下载对话框,查找各大技术论坛帖子,各种解决办法,有的是针对xp系统的,打开“我的电脑”,在菜单里选择“工具”->“文件夹选项”,在对话框里选择“文件类型”这个属性页,在列表中选中扩展名为doc的类型,按下面的“高级”按钮,在弹出的“编辑文件类型”对话框里钩上“下载后确认打开”复选框就可以了。本人确认,win7里面没有,在第一个链接里帮助也有两个解决办法,一个是下载一个msi文件,直接双击修复问题,另一个是创建一个注册表注册文件,具体操作是,新一个文件,将 [html] view plaincopy
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8] "BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.RTF.8] "BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.12] "BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.DocumentMacroEnabled.12] "BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8] "BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.12] "BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetMacroEnabled.12] "BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetBinaryMacroEnabled.12] "BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Show.8] "BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Show.12] "BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.ShowMacroEnabled.12] "BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShow.8] "BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShow.12] "BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShowMacroEnabled.12] "BrowserFlags"=dword:800000A0
里面的内容复制到新建的文件中,将文件以及后缀名修改为fileName.reg,保存后双击运行,再次亲测,不知道为什么,一开始是连注册都注册不了,说什么二进制什么的我也没记清楚,后面又提示说已注册成功了,心想难道还真成了,再次打开文件,还是不行,同样出现下载对话框。
对其失望之,但是又没有着手点,继续查找文章,查看了多篇一字不改的文章后,终于皇天不负有心人,找到了一篇有所不同的文章:
http://hi.baidu.com/echo_swjtu/blog/item/b93f39f8fa24ff0408244d5a.html里面说到了一个activeX——DsoFramer.ocx,于是乎点了其所提到的链接,里面有如何简单使用DsoFramer的教程,可是对于win7、64位的操作系统来说,使用32位的组件不是说使用就使用的,首先,如
http://www.cnblogs.com/tianfu/archive/2009/05/07/1452047.html里面所说到的,可以下载ocx后新建bat文件注册ocx,如果你是32系统的,那没问题,如果你是64位系统的,请把批处理改成
[plain] view plaincopy
copy dsoframer.ocx c:\windows\sysWos64\dsoframer.ocx
regsvr32.exe c:\windows\sysWow64\dsoframer.ocx
原因在于64位系统的把32位的activeX放在上面文件里。
不出问题的话应该是注册成功的了,在vs2008中启动项目,提示成功,却没反应,郁了个闷,使用调试,在初始化axDsoFramer的时候提示找不到注册类,我不是已经注册了吗?为什么还找不到呢?反注册ocx,再注册ocx,问题没变,问题出在哪呢?继续查找贴子,终于在csdn的一篇帖子中找到问题所在,由于链接当时没保存,在此没办法给出,解决办法是将编译的目标平台改为x86的,即改为cpu32位的,具体操作在vs2008中是:"项目->yourWinFormName属性->生成->目标平台"对应的下拉框修改成x86,至此,可以正常使用Dsoframer
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
office文件点击保存就闪退
打开任何一个excel文件都会自动多打开一个Book1窗口
电脑无法通过Office软件打开PPT文件提示无法读取该怎么办?
解决打开office提示安装
office安装出现windows installer服务不能更新一个或多个受保护的windows文件
Winform 集成零散dll进exe的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服