Voici le deal. Nous approchons des limites, je pense à ce que vous pouvez faire avec CSV, mais je me demande si quelqu'un a une solution.
Nous avons un fichier CSV d'une taille de 357 Mo. Les téléchargements sont corrects et ne prennent pas trop de temps avec une bonne connexion.
Cependant, la plupart des clients ouvrent ce fichier dans Excel. Et il y a plusieurs problèmes:
- Un champ
00400
montrera comme40
(zéros non supprimés) - Une valeur de 0.04088100 deviendra 4.08E-2 (ou quelque chose comme ça)
- Les dates et les heures changent
Le mauvais correctif:
Nous avons essayé d'ajouter un =
personnage avant la "0040"
- cela fonctionne pour les petits fichiers mais pas pour les gros fichiers - Excel ne peut pas les traiter toutes comme des formules, trop de mémoire et le fichier ne s'ouvre jamais
Le bon correctif:
Nous avons ajouté un caractère ASCII 28 (un File Stop
ou FS
, voir http://www.theasciicode.com.ar/extended-ascii-code/uppercase-slashed-zero-empty-set-ascii-code-157.html ) Tous les champs avec cette valeur "cachée" sont affichés correctement, sauf qu'ils sont justifiés à gauche (car ils traitent un texte)
Le seul problème: Malheureusement, la bonne solution a un problème. Lorsque vous utilisez le formatage pour justifier à droite les champs avec le CHR (28) à gauche, il y a un petit espace à droite, que vous ne pouvez pas supprimer car il supprime plutôt le caractère correct.
Un correctif possible: Nous avons fait quelques expériences et nous avons constaté que l'ajout de CHR (157) à la gauche des valeurs de champ abusées par Excel l'arrêtait également ET ET justifiaient à droite. toutefois Je me sens très bizarre de faire cela et je me demande s’il ya des inconvénients.
Cela peut sembler une question obscure; J'ai fait beaucoup de recherches à ce sujet. Est-ce qu'il y a une meilleure approche? La configuration requise ne permettra pas au fichier d'être sauvegardé - en tant que fichier .xlxs, etc.
.txt
fichier (qui présentera l’assistant d’importation de texte lorsqu’il sera ouvert dans Excel et pourra désigner la colonne en tant que texte); ou les faire importer et non pas ouvrir le fichier csv (qui fera la même chose).