fputcsv et entier typcasting à chaîne
Donc, j'ai une ligne que je veux faire un fputcsv sur qui a des entiers (que j'ai besoin d'être traitées comme des chaînes de caractères, mais ils sont des nombres). Ces entiers ont zéros qui me couper quand je fais la fputcsv mais je ne veux pas que cela se passe, est-il un moyen de contourner cela? J'ai essayé tout à typcasting comme (chaîne de caractères) et de mettre ma variable dans les citations, mais le seul moyen que j'ai trouvé pour l'instant est de mettre des guillemets autour de l'ensemble du numéro qui conduit les guillemets être indiqué dans le fichier csv quand je l'ouvre dans excel, que je ne veux pas de se produire. Personne ne sait de façon à obtenir que cela fonctionne? Je pense que le fputcsv est juste automatiquement l'affectation de cette variable d'un type pour une raison quelconque et d'en faire un entier ou quelque chose...
Exemple de modification de Texte:
Ce que je fputcsv:
02305109
Ce que je reçois dans le fichier csv ouvert dans excel:
2305109
mais le zéro est toujours là quand je viens de l'utiliser vi pour ouvrir dit fichier csv. Vraiment étrange.
- De plus, quand je mets des guillemets autour de la chaîne de caractères avant le fputcsv le fichier a une triple cité, plutôt que de simplement mettre un ensemble de citations.. vraiment bizarre.
- Comment savez-vous qu'il n'est pas excel décapage le 0?
- Si vous utilisez Excel assistant importation de texte pour ouvrir le fichier CSV que vous pouvez dire à Excel pour traiter cette colonne en tant que texte. Rembourrage des nombres avec le "0" est une douleur dans Excel (et ailleurs) et de mieux les éviter si possible.
- Voir ici.
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème pendant de longues numéros que j'ai voulu comme une chaîne de caractères.
L'envelopper dans des guillemets simples et de le rendre évaluable.
'="' . $yourNumber . '"'
Excel interprète la valeur comme un nombre et de la mise en forme comme ça. Cela n'a rien à voir avec php.
SU ce post a quelques informations: https://superuser.com/questions/234997/how-can-i-stop-excel-from-eating-my-delicious-csv-files-and-excreting-useless-da
Essayer ajoutant (ou en ajoutant) votre leading-zero entiers avec un caractère nul.
sortie comme une formule, de sorte que:
$ligne["téléphone"]= "=\"" .$ligne["téléphone"]. "\"";
L'ajout d'un seul devis pour le début des données permettra de résoudre le problème.
je.e '930838493828584738
au lieu de 930838493828584738 qui convertit à cette 934E+n
Si le fichier csv fourni par un tiers, cela pourrait être un problème.
C'est trop simple mon code est
Essayez l'un des principaux apostrophe (apostrophe). IIRC qui maintient les zéros, mais n'apparaît pas dans Excel.
format de la colonne à l'aide de
"00000000"
Ceci a l'avantage qu'il permettra de préserver le format sur enregistrer
Vous avez juste besoin d'ajouter une citation au début du numéro:
et excel ne sera pas le format de cette cellule comme un nombre.