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.