2

2003 年と 2007 年のオフィスの Excel ファイルを区別するために、次のコードを使用しています。

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

しかし今、2010年のExcelファイルも特定する必要があります。いくつかの解決策を提案してください。

4

1 に答える 1

7

.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 になる予定です。

于 2013-01-09T07:35:53.223 に答える