Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中使用互操作以使用适当的应用程序打开office文件_C#_Interop_Office Interop - Fatal编程技术网

如何在C#中使用互操作以使用适当的应用程序打开office文件

如何在C#中使用互操作以使用适当的应用程序打开office文件,c#,interop,office-interop,C#,Interop,Office Interop,在我最近的项目中,我可以使用C#中的Interop打开和处理任何office文件,只要我知道它们的文件类型(例如“.doc”、“.xlsm”、“ppt”等),并且将选择特定的应用程序(例如Word或Excel)来打开文件 我的问题是,是否有一种独特的方法可以打开office文件并使用C#中的Interop进行处理?谢谢 编辑: 例如,给定一个“.doc”文件,我将使用Microsoft.Office.Interop.Word打开它。在C#中是否有方法知道与哪个应用程序(即Microsoft.Of

在我最近的项目中,我可以使用C#中的Interop打开和处理任何office文件,只要我知道它们的文件类型(例如“.doc”、“.xlsm”、“ppt”等),并且将选择特定的应用程序(例如Word或Excel)来打开文件

我的问题是,是否有一种独特的方法可以打开office文件并使用C#中的Interop进行处理?谢谢

编辑: 例如,给定一个“.doc”文件,我将使用Microsoft.Office.Interop.Word打开它。在C#中是否有方法知道与哪个应用程序(即Microsoft.Office.Interop.Word、Microsoft.Office.Interop.Excel、Microsoft.Office.Interop.PowerPoint)关联以打开给定的文件类型使用Interop(我需要使用Interop进行一些处理)


一种方法是根据不同的文件类型存储一个带有相关应用程序的表。有更好的方法吗?

Office扩展性模型没有为此提供任何东西

可能的解决办法是:

  • 以编程方式运行该文件。它将在默认应用程序中打开。没有人能保证它将是来自Microsoft Office软件包的应用程序
  • 您可以在注册表部分HKEY_CLASSES_ROOT下查看扩展和操作详细信息。这方面的文档是。或者,您可以使用该接口

  • 你可以在论坛帖子上阅读更多关于这方面的内容。

    你能澄清你的问题吗?您完全可以使用C#(或任何其他语言)打开/处理MS Office文档。没有问题。您是否正在尝试打开每种文件类型及其关联的应用程序?不需要互操作,只需使用
    Process.Start(filename)
    即可在默认应用程序中打开文件。