2010-08-30 6 views
1

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

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.

+0

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

+0

'suce' et 'excelle' en une phrase .. me semble familier: D – ypnos

Questions connexes