J'utilise Apache POI depuis un certain temps pour lire des fichiers Excel 2003 existants par programmation. Maintenant, j'ai une nouvelle exigence pour créer des fichiers .xls entiers en mémoire (toujours en utilisant Apache POI), puis les écrire dans un fichier à la fin. Le seul problème qui me gêne est la manipulation des cellules avec des dates.
Considérez le code suivant:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Lorsque j'écris le classeur contenant cette cellule dans un fichier et que je l'ouvre avec Excel, la cellule s'affiche sous forme de nombre. Oui, je me rends compte qu'Excel stocke ses «dates» sous forme de nombre de jours depuis le 1er janvier 1900 et c'est ce que représente le nombre dans la cellule.
QUESTION: Quels appels d'API puis-je utiliser dans POI pour lui indiquer que je souhaite qu'un format de date par défaut soit appliqué à ma cellule de date?
Idéalement, je souhaite que la cellule de la feuille de calcul soit affichée avec le même format de date par défaut qu'Excel l'aurait attribué si un utilisateur avait ouvert manuellement la feuille de calcul dans Excel et tapé une valeur de cellule qu'Excel reconnaissait comme étant une date.
BuiltinFormats
qui répertorie tous les formats standard (pas seulement les formats de date) connus d'Excel. Je m'en tiens à l'un de ceux à utiliser comme paramètre de lagetFormat()
méthode indiquée dans l'extrait de code ci-dessus.