【问题标题】:Programmatically finding an Excel file's Excel version以编程方式查找 Excel 文件的 Excel 版本
【发布时间】:2011-01-05 11:20:31
【问题描述】:

我正在使用 OleDbConnection 从 C# 程序连接到电子表格。连接字符串中的参数之一是 Excel 版本。

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties="Excel 8.0;HDR=YES"

给定一个 Excel 文件的路径,我如何知道它使用的是哪个 Excel 格式版本?

提前致谢,

T.

【问题讨论】:

    标签: c# excel oledb


    【解决方案1】:

    除了所说的之外,除了使用 Excel 自动化打开文件之外,您还可以尝试从代码中读取文件版本:

    xls 文件:保存为structured storage。你可以在这里使用文章中的技术:How To Determine Which Version of Excel Wrote a Workbook

    xlsx 文件:您可以将它们作为 zip 文件打开。版本在 app.xml 文件的 AppVersion 字段中。

    【讨论】:

      【解决方案2】:

      下载OLE File Property Reader。使用 regsvr32 注册 dsofile.dll 并将其作为参考添加到您的应用程序中。以下代码将输出 Excel 文件的类型。它不适用于 xlsx/docx,因为它们不是 OLE 复合对象文件,但应该适用于所有较旧的 Office 格式 (2007/2003/XP)。

      var doc = new OleDocumentPropertiesClass();            
      doc.Open(@"c:\spreadhseet.xls", false, dsoFileOpenOptions.dsoOptionDefault);
      Console.WriteLine(doc.OleDocumentType);
      

      【讨论】:

        猜你喜欢
        • 2011-08-02
        • 2014-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-17
        • 2021-08-20
        • 2011-10-19
        相关资源
        最近更新 更多