我正在使用以下代码来区分 2003 年和 2007 年办公室的 excel 文件。
if (Extension == ".xls" || Extension == ".xlsx")
{
}
但现在我还需要识别 2010 excel 文件。请提出一些解决方案。
最佳答案
您可能知道 .xlsx 文件(与所有 Office Open XML 文件一样)实际上是 .zip 文件,其中包含一组描述内容的内部文件。所以在这里你可以找到保存文件的程序的版本号:
将 .xlsx 扩展名重命名为 .zip(当您以编程方式执行此操作时,可以跳过该步骤,但它有助于演示)。打开文件中包含的压缩结构。
你会找到一个 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 中(而不是 Open Office)。查看 <AppVersion>
标签?那个有你要找的版本号。 Excel 2007 是版本 12,而 Excel 2010 是版本 14(因为使用版本号 13 会破坏整个操作)。 Excel 2013 预计为版本 15。
关于c# - 如何查看excel文件是office 2007还是2010的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14229810/