Apache POI pour Excel: le Réglage de la cellule de type “texte” pour une colonne entière
J'ai besoin de générer un .xls (Excel) de fichier, à l'aide de la bibliothèque Java Apache POI pour les feuilles de calcul.
Le fichier contient une liste de numéros de téléphone dans la colonne A, la forme "0221...." ou "+49221..." - Excel par défaut interprète comme numérique cellules. Ce qui est mauvais, parce que le 0 ou + aurez coupé.
Pour résoudre le problème, je peux l'utiliser cell.setCellType(Cell.CELL_TYPE_STRING)
, qui fonctionne très bien, mais seulement pour les cellules que j'ai mis ce pour.
Comment puis-je appliquer ce paramètre pour l'ensemble de la colonne (c'est à dire même pour toutes les autres cellules, où l'utilisateur va entrer d'autres numéros de téléphone)?
Dans Excel, c'est possible: la Sélection de l'ensemble de la colonne, et d'appliquer le type de cellule (le réglage survit sauvegarde/chargement du fichier.)
Mais je ne trouve pas la bonne méthode pour PVE.
- J'ai d'abord pensé, il doit être quelque chose comme
sheet.setDefaultCellType(int colNum)
. Mais je ne peux pas trouver quelque chose comme cela (probablement, je suis juste aveugle? Il y a beaucoup de des méthodes similaires dans la bibliothèque pour appliquer des styles de texte "align center",...). - Puis j'ai pensé: Peut-être qu'il ne peut être appliqué qu'à un NamedRange ou quelque chose de similaire, mais je n'ai pas réussi à trouver comment cela fonctionne...
OriginalL'auteur Chris Lercher | 2011-06-28
Vous devez vous connecter pour publier un commentaire.
Sera cette aider?
Cela fonctionne... Merci!
J'ai fait de même. var cllstyl = ce.Classeur.CreateCellStyle(); var classeur = new HSSFWorkbook(); var currDataFormat = classeur.CreateDataFormat(); cllstyl.Format = currDataFormat.GetFormat("@"); la tôle.SetDefaultColumnStyle(1, cllstyl); Mais il n'est pas en montrant format "Texte", au lieu de cela, il affiche "Date". Merci de m'aider sur ce point.
Merci beaucoup 🙂
OriginalL'auteur Vlad
Voici un exemple de code inspiré par Vlad réponse:
Le code ci-dessus définit le style par défaut de la première colonne de feuille de calcul à TEXTE.
Merci, Vlad!
Merci beaucoup, cela a fonctionné pour moi 🙂
OriginalL'auteur jahroy
Vlad:
C'est plus du problème fait. J'ai trouvé que tous les vides, les lignes ont été mises en forme à ce que je voulais. Cependant les lignes où j'ai eu des zéros initiaux regardé et a bien fonctionné; cependant, si je devais changer une pré-existante de valeur avec une autre valeur à partir de zéro les zéros disparu. Donc je vous recommande l'ajout de code lorsque vous créez de la valeur dans la cellule pour réinitialiser le setCellStyle de texte. voici quelques extraits:
méthode publique de la Cellule createCell(Ligne r!, BBjNumber cellule, BBjString valeur!)
methodret c!
methodend
cela peut aider d'autres seul à la recherche pour les premiers zéros.
Je vous remercie pour l'affichage.
Alex
OriginalL'auteur alex robkin
Une meilleure façon de le régler maintenant à l'aide de POI est d'utiliser le
BuiltinFormats
classe.Par exemple:
Pour convertir le type de colonne numérique
La liste complète des
BuiltinFormats
formats peut être vu, iciOriginalL'auteur Antho Christen