Existe-t-il un moyen de dire par programme qu'un fichier Microsoft Office est au format Open XML et non l'ancien format binaire pré-Office-97?Y at-il un moyen de dire qu'un fichier Microsoft Office est au format Open XML?
En tant qu'utilisateur final, je modifie généralement l'extension de fichier à .zip et j'essaie d'extraire l'archive. Si elle extrait, alors je sais que c'est un format Open XML. Mais je ne suis même pas sûr que ce soit une méthode infaillible et que les fichiers pour lesquels il ne fonctionne pas ne sont pas des fichiers Open Xml. Je l'ai fait dans Powershell et à partir de la sortie, en raison de la présence de la propriété CustomXmlParts
, je suis en mesure de faire un peu deviner qu'il s'agit d'un classeur au format Open XML que je regarde.
PS C:\Users\Sathyaish> $excel = New-Object -ComObject Excel.Application
PS C:\Users\Sathyaish> $workbook = $excel.Workbooks.Open("C:\Sathyaish\temp\Foo.xlsx")
PS C:\Users\Sathyaish> $workbook | select C*, F*
Creator : 1480803660
ChangeHistoryDuration : 0
Charts : System.__ComObject
CodeName :
CommandBars :
Comments :
ConflictResolution : 1
Container :
CreateBackup : False
CustomDocumentProperties : System.__ComObject
CustomViews : System.__ComObject
CalculationVersion : 171027
ContentTypeProperties :
Connections : System.__ComObject
CheckCompatibility : False
CustomXMLParts : System.__ComObject
ConnectionsDisabled : False
CaseSensitive : False
ChartDataPointTrack : True
FileFormat : 51
FullName : C:\Sathyaish\temp\Foo.xlsx
FullNameURLEncoded : C:\Sathyaish\temp\Foo.xlsx
Final : False
ForceFullCalculation : False
Existe-t-il une façon VSTO/VBA de dire la même chose? Peut-être en regardant la valeur de la propriété FileFormat
comme indiqué ci-dessus? Quelles sont les valeurs entières valides et leurs significations?
Ou il doit y avoir la possibilité d'essayer de charger le document en utilisant le SDK Open XML et si elle échoue, alors vous savez que ce n'est pas un format de fichier Open XML approprié. Mais cela n'exclut pas d'autres possibilités telles que le fichier n'étant pas du tout un fichier Microsoft Office.
L'une des différences est l'extension du fichier: xls vs xlsx. Un autre format non XML est xlsb (binaire). Le "x" et "m" dans l'extension indique Open XML. Plus de détails à partir de [Microsoft] (https://support.office.com/en-us/article/Open-XML-Formats-and-file-name-extensions-5200D93C-3449-4380-8E11-31EF14555B18) –