2 votes

Existe-t-il différents formats pour un fichier Excel/XLSX et quel est le plus petit ?

Nous avons donc d'abord essayé de permettre à l'utilisateur de télécharger des fichiers CSV via leur navigateur, ce qui a bien fonctionné (certains fichiers font environ 375 Mo). Cependant, il semble que le client ne l'accepte pas en raison a) du formatage des nombres, b) de la suppression des zéros non significatifs et c) de la modification de nombres longs tels que le code d'un État de 157839481905 まで 1.58E10 .

Si vous avez utilisé Excel, vous connaissez bien ces "Je pensais que vous vouliez". este " comportements

Nous devrons donc transmettre un fichier Excel, mais existe-t-il différents formats ? (Pour cette question, on suppose que l'utilisateur a accès à la dernière version d'Excel).

Je pense qu'Excel peut ouvrir un fichier XML correctement spécifié en tant que feuille de calcul, qui pourrait contenir les instructions appropriées de "formatage en tant que texte", mais pour les fichiers volumineux, cela pourrait vraiment devenir incontrôlable. Existe-t-il un format Excel plus natif et plus léger ? Sans autant de balises ? Si vous le connaissez, où est-il décrit ?

-- EDIT --

J'ai pensé aider la communauté avec ce que j'ai trouvé. Tout d'abord, nous avons essayé d'utiliser ="0040" c'est-à-dire un égal avant les guillemets. Cela fonctionne, mais si la taille d'un fichier est trop importante, Excel s'affole et se bloque.

Nous avons essayé un caractère spécial à l'intérieur des guillemets auparavant, ce qui a fonctionné mais le formatage a posé problème.

Peut-on STREAMer un fichier XLSX ? NON !

Raison : un fichier XLSX est en fait un fichier zippé contenant deux fichiers clés, l'un nommé sharedStrings.xml qui est une liste de toutes les valeurs UNIQUES des cellules, et l'autre qui est une liste de cellules mais avec une référence numérique au premier fichier sharedStrings.xml. Le dossier entier est zippé et voici votre fichier XLSX. Un fichier XLSX doit donc être construit et non en streaming.

2voto

thibautg Points 129

Ce n'est pas vraiment une réponse à votre question, mais bien à la cause de votre problème.

Si vous voulez éviter le raccourcissement de vos nombres dans Excel lorsque vous ouvrez un fichier csv, vous pouvez utiliser ="0123456789" au lieu de 0123456789 comme s'il s'agissait d'une formule.

Exemple :

Name,Value,Value as text
Small int,01234,="01234"
Long int,0123456789,="0123456789"
Very long int,01234567890123456789,="01234567890123456789"

Résultat :

Result in Excel

0voto

vutran Points 456

Je vois quelques options, mais je ne suis pas sûr que cela fonctionnera (je n'ai aucune expérience avec xml) :

La première chose, que vous avez écartée, est de formater comme un texte toute la feuille de calcul. Ok, le fichier serait trop gros.

Deuxièmement, ajoutez "'" devant les chiffres gênants, ce qui les convertit en texte. Encore une fois...

Troisièmement : le "nouveau" xlsx devrait permettre de réduire la taille du fichier, bien mieux que le format xls.

Quatrièmement Changer le format en texte et changer l'encodage de tout le classeur en ASCII ou quelque chose d'aussi simple. Plus d'informations ici https://help.surveygizmo.com/help/encode-an-excel-file-to-utf-8-or-utf-16 (si nécessaire, j'ajouterai plus d'informations ici)

Je ne suis pas sûr, mais comme dernière chose, j'essaierais de convertir en csv et ensuite de changer le codage en ASCII ou un codage plus petit.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X