.net检测Office.interop.Excel是否存在

时间:2013-05-30 08:47:45

标签: .net excel-automation

如果它安装在目标计算机上,我需要使用Excel,如果不是,则生成text文件。

我检查是否存在excel application注册表项,但在我能够做到之前,我得到了一个

System.IO.FileNotFoundException: Could not load file or assembly Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c

或其中一个依赖项。

如何检测interop程序集是否可用,并阻止run-time尝试加载它(如果不可用)。 (我不知道目标上可能存在Excel的版本,所以我认为我不能重新分发interop以防错误。{/ p>

1 个答案:

答案 0 :(得分:2)

您似乎在代码中添加了对特定互操作程序集的引用。您的应用程序甚至无法加载,因为它无法找到运行所需的所有程序集。如果您必须通过Interop使用Excel,则必须删除引用并使用Assembly.Load动态加载程序集。

如果您只想阅读/创建Excel文件,则根本不需要Excel。

XLSX只是一堆压缩的XML文件。 Microsoft的OpenXML SDK允许您直接使用XML处理文件,并且还有其他库位于SDK之上,使编程更加容易。

Generating Excel 2010 Workbooks by using the Open XML SDK 2.0提供了有关XLSX格式的详细说明,以及如何使用SDK轻松创建简单和复杂的电子表格。