如何使用已安装的Office版本在WinForms应用程序中查看Microsoft Office文档?

时间:2011-02-07 20:33:42

标签: c# winforms ms-office

我正在编写一个功能,允许用户快速浏览并快速查看大量word文档。所有用户都将安装Office 2003,2007或2010(这是其他一些功能所必需的)。文档(其中大部分将是Word)只需要以只读方式显示。

我尝试使用MSDN上的示例,其中使用VS2008和Office 2007将office文档加载到Web浏览器组件中。

Excel电子表格加载得相当好,但Word文档出现在一个单独的窗口中,虽然没有工具栏只显示文档的正文。似乎微软已经停止支持这种渲染办公文档的方式,因为该文章自2007年以来一直没有更新。

有人可以就如何成功运作提出建议吗?

我还看过第三方组件,例如aspose.net看起来很棒,但是许可证费用非常大,考虑到所有用户都已经安装了Office,这似乎有些过分。

4 个答案:

答案 0 :(得分:6)

我在msdn forum找到了解决方案。

问题在于我使用的测试.NET项目是作为“任何CPU”构建的,它在64位Windows上作为64位进程运行。

我安装了32位版本的Office 2007。

将.NET项目配置更改为x86,WebBrowser组件能够在其自己的窗口中托管Word文档。

我仍然不明白为什么即使在以任何CPU运行时Excel也能加载到WebBrowser中。

答案 1 :(得分:2)

尝试将HKCR \ Word.Document.12和HKCR \ Word.Document.8下的注册表中的BrowserFlags设置为0x80000024。

有关详细信息,请参阅http://support.microsoft.com/kb/982995

答案 2 :(得分:1)

我相信要让Office应用程序不显示在单独的窗口中,您必须更改该文件类型的Windows资源管理器文件夹设置。

来自this MSDN page

  

Internet Explorer使用在同一窗口中浏览选项来确定文档是在活动窗口内还是在单独窗口中托管。如果文档托管在单独的窗口中,则不会加载和运行自定义项。要访问Word文档或Excel工作表的在同一窗口中浏览选项,请打开Windows资源管理器,单击工具菜单,然后单击文件夹选项。在文件类型标签上,选择文件类型列表中的 DOC XLS ,点击高级,然后验证选择在同一窗口中浏览

答案 3 :(得分:0)

您是否考虑过将文档导出为pdf?

  • 免费的Adobe阅读器
  • 只读
  • 如果需要稍后审核,可以保存
  • 打印可能性