![](/img/trans.png)
[英]Excel interop works on machine with Office 2007 but fails on machine with Office 2010
[英]how to check whether excel file is of 2007 or 2010 office
我正在使用以下代碼來區分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將對整個操作進行jinxed)。 Excel 2013預期為版本15。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.