2013-01-09 3 views
1

나는 2003 년과 2007 년 사무실의 파일을 차별화하기 위해 다음 코드를 사용하고 있습니다.excel 파일이 2007 년 또는 2010 년 사무실인지 확인하는 방법

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

하지만 이제는 2010 엑셀 파일을 식별해야합니다. 해결책을 제시하십시오.

+0

파일을 생성하는 데 Excel 개체 모델을 사용하고 있습니까? 지금이라면 어떻게 만드십니까? – shahkalpesh

+0

엑셀 파일은 사용자가 업로드 할 수 있으며 솔루션으로 만 제공됩니다. – ravi

+0

Excel 2010 파일은 2007 파일과 크게 다르지 않습니다. 그럼에도 불구하고, 내부에 포함 된 버전 번호를 기준으로 차별화하는 방법에 대한 설명을 게시했습니다. – tylerl

답변

6

아마도 모든 Office Open XML 파일과 같은 .xlsx 파일은 내용을 설명하는 내부 파일 세트가 포함 된 .zip 파일입니다. 파일을 저장 한 프로그램의 버전 번호를 찾으려면 다음을 방문하십시오.

.xlsx 확장명을 .zip으로 바꿉니다 (프로그램 적으로이 작업을 수행 할 때는 건너 뛰기가 가능하지만 데모에서는 도움이됩니다.)). 파일에 포함 된 압축 구조체를 엽니 다.

app.xml (열기) 파일이 들어있는 docProps 디렉토리가 있습니다.

<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 예정입니다.

+1

'docProps' 섹션은 xlsx의 필수 부분이 아닙니다 사양. Excel 이외의 프로그램을 사용하여 작성된 문서에는 Excel이 없을 수 있습니다. 예를 들어 Google 드라이브를 사용하여 xlsx 파일을 만드는 경우이 정보가 없습니다. – tylerl

관련 문제