代码之家  ›  专栏  ›  技术社区  ›  chillitom Cee McSharpface

以编程方式查找Excel文件的Excel版本

  •  2
  • chillitom Cee McSharpface  · 技术社区  · 16 年前

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

    “提供程序=microsoft.jet.oledb.4.0;数据源=c:\book1.xls;扩展属性=” Excel 8 “HDR=yes”

    给定Excel文件的路径,我如何才能找出它使用的Excel格式版本?

    事先谢谢,

    T

    2 回复  |  直到 16 年前
        1
  •  2
  •   Mikael Svenson    16 年前

    下载 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);
    
        2
  •  3
  •   serge_gubenko    16 年前

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

    XLS 文件:保存为 structured storage . 您可以使用本文中的技术: How To Determine Which Version of Excel Wrote a Workbook

    XLSX 文件:可以将其作为zip文件打开。版本在app.xml文件app version字段中。