J'ai actuellement une méthode qui reçoit un tableau d'octets d'un fichier Excel. Cela a fonctionné très bien, et je l'ai fait différencier les types de fichiers (.xls
, et .xlsx
) en fonction des deux premiers octets du fichier. Si c'est un .xlsx
il a commencé avec un PK. Malheureusement, maintenant je reçois .xlsm
fichiers envoyés, et je ne sais pas quel octet diffère de les différencier. Je n'ai pas le nom de fichier à ce stade pour obtenir l'extension.Différencier les types de fichiers excel basés sur des octets, pas sur l'extension
1
A
Répondre
1
La seule différence entre .xlsx et .xlsm est que ce dernier peut inclure des macros. Je suis tout à fait sûr que vous avez besoin de plus d'analyse du fichier pour le découvrir.
Notez que le nombre magique "PK" (en fait c'est PK \ x03 \ x04) au début du fichier .xlsx fait référence aux données compressées ZIP. Pour continuer à analyser le fichier, vous devez d'abord le décoder (décompresser) selon le format de fichier ZIP.
Merci, je vais juste ajouter une méthode qui prend aussi l'extension de fichier en paramètre. Sauvez-moi le mal de tête d'essayer de le comprendre. Sucks que Excel se fonde sur cette extension étant correcte tout le temps – CaffGeek
'suce' et 'excelle' en une phrase .. me semble familier: D – ypnos