检测Microsoft.Office.Interop.Excel可用性

时间:2012-02-07 22:02:24

标签: c# .net-4.0

我正在开发一个可以从多种不同格式导入数据的应用程序。我想包括CSV和其他平面文件类型(简单)以及XLS和XLSX 看起来我最好的选择是使用Interop.Excel,我理解只有安装了Excel才能使用 有没有办法检查Interop.Excel是否可用并告诉用户必须安装Excel才能从XLS / XLSX导入?

5 个答案:

答案 0 :(得分:7)

Microsoft.Office.Interop.ExcelOffice Primary Interop Assembly,无论客户端是否安装了Office,您都可以将其与应用程序一起提供。在您开始使用它之前不会有任何伤害。因此,在使用它之前,您可以look at the registry查看是否已安装Office。

答案 1 :(得分:1)

如果要支持本机Microsoft Excel文件,并且不想依赖Microsoft Excel,请查看OpenXML。这仅适用于较新的Excel XML格式化文件。如果您的需求很简单,只需要从遗留的格式化Excel文件或CSV文件中读取数据,您就可以使用Ace提供程序和/或Microsoft Jet OLE DB 4.0提供程序

OpenXML允许您读取/写入新的XML格式化Excel文件。 StackOverflow上有几个线程,有关使用OpenXML的更多信息值得一试。

答案 2 :(得分:0)

答案 3 :(得分:0)

尝试创建 Excel 实例。如果它产生异常,则未安装 Excel 并且互操作将不起作用。如果没有例外,那么您可以使用互操作。

using Excel = Microsoft.Office.Interop.Excel;
...
private bool CheckForExcel()
{
    bool exists = false;
    try
    {
        var excel = new Excel.Application();
        exists = true;
    }
    catch (Exception)
    {
        ;
    }
    return exists;
}

答案 4 :(得分:-1)