最近一直想用VC#2005作个内嵌WORD/OFFICE的WINFORM程序,目前主要有如下解决途径:html
一、直接经过API把WORD/OFFICE的窗口句柄给放到WINFORM中(感受较为复杂);web
二、经过WEB BROWSER;windows
三、利用DSOFRAMER。工具
本人都测试了一下,以为DSOFRAMER更符合本身的愿望,故决定使用DSOFRAMER来实现。测试
操做步骤:
WinForm网站
一、从微软网站下载DsoFramer_KB311765_x86.exe,解开将获得dsoframer.ocx;this
二、把dsoframer.ocx拷贝到系统目录下,并注册,我是写了一个reg.bat来实现: copy dsoframer.ocx c:\windows\system32\dsoframer.ocx regsvr32.exe c:\windows\system32\dsoframer.ocxspa
三、启动VS2005,新建立一个WINFORM的C#程序;设计
四、在设计工具栏中,新添加选项,在弹出的页面中选择“TAB”页,而后浏览,选择c:\windows\system32\dsoframer.ocx进行添加,此时设计工具栏中将看到这个工具,名字为“DSO FRAMER CONTROL OBJECT”;orm
五、拖动此工具到某设计FORM窗口中,此时将在代码文件中添加了如下行: private AxDSOFramer.AxFramerControl axFramerControl1;
六、打开文件,this.axFramerControl1.Open(_filePath);//注:_filePath为.doc或者.xls为后缀的文件;
七、此时就能够直接在打开的WORD/EXCEL上进行编辑保存等等操做了。 注:在操做过程当中,发现按打印预览按钮后关闭,会引发WORD/EXCEL报错,找了很久,后来直接安装OFFICE2003 SP3,哈哈,fix the bug,不会报错了。
本文来自http://www.cnblogs.com/tianfu/archive/2009/05/07/1452047.html
Web
1.将dsoframer.ocx复制到c:\windows\system32\
2.双击运行regocx.bat文件 在vs2010中使用dsoframer控件:
1.在工具箱中添加项,在COM 选项卡中选择已注册的dsoframer控件。
2.将公共控件中的DSO Framer控件拖到表单上。
3.在DSO中打开Office文件代码: this.axFramerControl1.Open("c:\\test.xls");
4.将Office文件保存的代码:
private void button1_Click(object sender, EventArgs e)
{ this.axFramerControl1.Open("C:\\Documents and Settings\\Administrator\\桌面\\复件 新建 Microsoft Word 文档.doc"); }
private void button2_Click(object sender, EventArgs e)
{ this.axFramerControl1.Save("C:\\Documents and Settings\\Administrator\\桌面\\111111111 文档.doc", true, "myname", "mypass"); }