繁体   English   中英

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

[英]Detect Microsoft.Office.Interop.Excel Availability

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

Microsoft.Office.Interop.Excel是一个Office 主互操作程序集,无论客户端是否安装了Office ,您都可以随应用程序一起提供。 在您开始使用它之前,它不会造成任何伤害。 因此,在使用它之前,您可以查看注册表以查看是否安装了 Office。

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

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

只需尝试创建 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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM