Comment définir un format de cellule de Texte
Je suis à l'aide d'Apache-PI 3.14. J'ai besoin de verrouiller une cellule à un format "Texte". Les données dans ma cellule, peut-être tous les chiffres, mais il est toujours considéré comme une chaîne de caractères. Quand j'écris de la cellule, j'ai fais comme ça:
cell.setCellValue("001");
cell.setCellType(Cell.CELL_TYPE_STRING);
Quand j'ouvre la sortie classeur dans Excel, la cellule contient la valeur correcte ("001") et il s'affiche avec un petit triangle vert dans le coin. Planant au-dessus du point d'exclamation s'affiche hover texte The number in this cell is formatted as text or preceded by an apostrophe
. Quand je regarde la mise en forme de cellule (clic Droit -> Format de cellule), la "Catégorie" est affiché en tant que "Général". Je m'attendais à ce "Texte".
Le problème se pose lorsqu'un utilisateur modifie la valeur dans la cellule en entrant des chiffres seulement. Parce que la "Catégorie" est "Générale", la valeur est entrée et s'affiche comme un certain nombre, en supprimant les zéros à gauche et à droite justifié.
Comment puis-je obtenir le même résultat que Excel "Format de cellule" dialogue?
Je suis à l'aide de HSSF.
OriginalL'auteur Steve H. | 2016-03-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer de configurer la cellule au format texte via
Remarque: CellStyles shoudl être ré-utilisé pour toutes les cellules, ne pas en créer de nouveaux pour chaque cellule.
Vous pouvez également essayer d'utiliser la fonction "Ignorer les erreurs" dans la .xlsx format, mais le support n'est pas entièrement fini, voir Question 46136 et Question 58641 pour certains en cours de discussion.
Voir aussi cette page MSDN quelques informations supplémentaires
"@"
pour le texte. Je crois que le"#"
rendrait le type numérique.46136 c'est probablement le meilleur pour HSSF, ou 56892 pour XSSF:/SS
Désolé, je n'étais pas sûr au sujet de "@", mais de toute évidence trop paresseux pour vérifier 🙁
OriginalL'auteur centic
Pour HSSF,
Juste définit l'ensemble de la colonne de style comme du Texte et de l'ensemble de la catégorie en tant que Texte .
Toutefois, si vous utilisez XSSF format, il ne fonctionne pas(je suis en utilisant Apache Poi 3.15 et ne fonctionne pas pour moi).
Dans ce cas, vous devez définir le style de chaque cellule que vous souhaitez traiter en tant que texte dans plus de code ci-dessus à l'aide de:
Concernant d'erreur, vous pouvez utiliser
Il ignore la NUMBER_STORED_AS_TEXT erreur pour la ligne de 0 à 9999 et de colonne de 0 à 9999 et de ne pas le voir.
OriginalL'auteur Shubhashish Mishra
Ressembler OP demandait Apache solution. Après quelques recherches, j'ai trouvé cette réponse:
Tout simplement remarqué. Merci pour l'atteindre.
OriginalL'auteur Ramana Viswanadha
Je n'ai aucun moyen de tester cela, mais avez-vous essayé d'utiliser un modèle - un vide fichier excel avec toutes les cellules formatée comme texte?
OriginalL'auteur Sebastian B