如何检查excel文件是2007年还是2010年办公室

我正在使用以下代码来区分2003年和2007年办公室的Excel文件。

if (Extension == ".xls" || Extension == ".xlsx") { } 

但现在我还需要确定2010年的Excel文件。 请提出一些解决scheme。

您可能知道.xlsx文件(如所有Office Open XML文件)实际上是.zip文件,其中包含一组描述内容的内部文件。 所以在这里你可以find保存文件的程序的版本号:

将.xlsx扩展名重命名为.zip(当您以编程方式执行此操作时,可以跳过该步骤,但对演示很有帮助)。 打开文件中包含的压缩结构。

你会在里面find一个docProps目录,其中包含一个名为app.xml的文件(打开它)。 你会发现这样的东西:

 <Properties> <Application>Microsoft Excel</Application> <DocSecurity>0</DocSecurity> <ScaleCrop>false</ScaleCrop> <HeadingPairs> <vt:vector size="2" baseType="variant"> <vt:variant> <vt:lpstr>Worksheets</vt:lpstr> </vt:variant> <vt:variant> <vt:i4>3</vt:i4> </vt:variant> </vt:vector> </HeadingPairs> <TitlesOfParts> <vt:vector size="3" baseType="lpstr"> <vt:lpstr>Sheet1</vt:lpstr> <vt:lpstr>Sheet2</vt:lpstr> <vt:lpstr>Sheet3</vt:lpstr> </vt:vector> </TitlesOfParts> <LinksUpToDate>false</LinksUpToDate> <SharedDoc>false</SharedDoc> <HyperlinksChanged>false</HyperlinksChanged> <AppVersion>14.0300</AppVersion> </Properties> 

请参阅<Application>标签? 这告诉你,它被保存在Excel中(而不是说,打开办公室)。 请参阅<AppVersion>标签? 那个有你正在寻找的版本号。 Excel 2007的版本是12,而Excel 2010的版本是14(因为使用版本号13会使整个操作变得困难)。 预计Excel 2013将成为15版本。