Problème avec jexcelapi - Java - Programmation
Marsh Posté le 07-02-2006 à 11:53:16
y a un truc pour faire des "merge cell", attend, je cherche
Marsh Posté le 07-02-2006 à 11:57:03
Code :
|
c'est ça que tu voulais faire, non ?
Marsh Posté le 07-02-2006 à 17:47:56
Oui c bon ce problème est réglé merci
Et sinon, pour ce qui est des grapgiques, y'a-t-il un moyen de les gérer ?
Ou bien c'est impossible ?
Parce que lorsque mon fichier possède des graphiques, je ne peux toujours pas l'ouvrir
Marsh Posté le 21-02-2006 à 14:44:05
Bonjour tout le monde je suis un petit nouveau icon_smile
Je suis actuellement en stage et je travaille sur la migration de eSpreadSheet vers POI ou JExcel.
Avant de pouvoir migrer je dois vérifier certains points prérequis, et la je cale.
Alors mon problème, sur Excel on peut "breaker" une cellule en rajoutant une apostrophe devant sa saisie, exemple : 'exemple.
Mon problème arrive quand je veux récupérer une date breakée ('26/09/06 ou '26 déc 2006 ...) le type de la cellule m'interdit de récupérer la cellule en tant que DateCell, car c'est une LabelCell.
Donc j'essaye de faire un bricolage, pour copier cette cellule sur une autre feuille Excel pour me débarasser de l'appostrophe et retrouver le bon type mais cela ne fonctionne pas.
La solution idéal serait un moyen de faire reconnaître par Excel le format date automatiquement via la "Barre de formule".
Si jamais quelqu'un à une solution je suis tout ouïe.
Merci par avance
Louis
Marsh Posté le 21-02-2006 à 15:07:12
luigi94 a écrit : Bonjour tout le monde je suis un petit nouveau icon_smile |
Apres des tests poussés, j'ai abandonné JExcel et POI ... Pour repasser a du "bon code VBA !!" YEAH
Les problemes rencontrés :
- Copie de feuilles existantes "merdiques" avec perte de mise en forme, perte des images et du formatage de cellule
- Generation de feuilles TRES limite, mise en forme a chier et limitation au niveau des macros (impossibilité??)
- Lourdeur comme c'est pas permis sur le traitement de classeurs en batch (generation d'etat de bord, de calcul via macro existante...)
Bref, a proscrire sauf pour 2/3 tableaux et une couleur...
Marsh Posté le 21-02-2006 à 15:14:26
Le truc c'est qu'à la base le traitement qu'on doit faire sur Excel n'est que de la lecture. Y a toujours ce problème avec les dates qui avait été détourné avec eSpreadSheet par de la bidouille. Mais cette même bidouille ne marche ni avec POI ni avec JExcel...
Marsh Posté le 21-02-2006 à 18:17:00
ben.. tu peux pas simplement récupérer ta String, et la parser en Date ?
Marsh Posté le 22-02-2006 à 09:05:15
Oui c'est ce que je compte faire, mais c'est dommage de ne pas utiliser Excel pour récupérer la date. Il l'a met en forme automatiquement.
Le truc chiant c'est que sur Excel il doit y avoir 17 formats de date (ou plus), donc vu que ma seule contrainte c'est que la date soit au format d'Excel, ca va me faire des supers expressions régulières, et des supers enchaînement de tests...
C'est la solution de dernier recours, mais je vais devoir m'y coller.
Marsh Posté le 23-02-2006 à 15:53:33
J'ai trouvé une solution : j'utilise une fonction d'Excel : DATEVAL() qui à partir d'une date au format string, l'interprète, et donne une date au format Excel : un double. Puis j'utilise la fonction HSSFDateUtil.getJavaDate( ) pour la conversion au format Java.
Le petit problème c'est que je triche un peu, j'utilise une formule présaisie sur une feuille Excel car je n'arrive pas a en rentrer une moi même : cell.setCellFormula("DATEVAL(A1)" ).
En tout cas ca marche, mais si quelqu'un a une idée pour la saisie de formule je lui en serai très reconnaissant.
Louis
Marsh Posté le 23-02-2006 à 17:00:20
En fait j'ai essayé, et la formule qu'il a dans la cellule est la suivante :
taStringQuiVaBien () DATEVAL. (Dans mon cas à moi : A1 () DATEVAL)
Je ne sais pas comment il entre les formules, mais sur le tuto de POI, ils disent d'entrer les formules au format string, comme si vous la saisissiez sur Excel.
Donc je ne sais pas.
Sur JExcel je galère aussi . Pour écrire la formule c'est simple, on déclare une Formula, et ensuite on l'ajoute à notre sheet. J'ai bien fait gaffe de changer le format de ma cellule pour qu'Excel me transforme directement ma date au format double au format dd/mm/yyyy... Mais comble du comble, impossible de récupérer le résultat de la formule, je ne récupère que la formule .
Donc va falloir trouver un autre moyen de tricher!
Marsh Posté le 23-02-2006 à 17:08:05
C'est bon le bricolage sur JExcel j'utilise DateFormulaCell.
Ce qui m'embête c'est de devoir trop dépendre d'un fichier Excel pour faire la formule.
Car dans ma solution je récupère le résultat d'une cellule que j'ai écrit à la main dans un fichier excel de "config".
Marsh Posté le 04-02-2006 à 13:41:48
Voilà je dois manipuler un fichier excel avec un petit programme en java
J'ai vu qu'il existait pour ca l'api jexcelapi, donc je m'en sers
Ceci dit ce n'est peut etre pas la meilleure api ?
Tout ce que je dois faire c'est entrer des valeurs à mon programme afin qu'il les écrive dans les bonnes cellules du fichier excel
Mais ce fichier est assez gros et il y a bcp bcp de valeurs à entrer
Et voilà mon problème lorsque je l'exécute :
Warning: Range A77-D77 contains more than one data cell. Setting the other cells to blank.
Warning: Range A23-D23 contains more than one data cell. Setting the other cells to blank.
Si je comprends bien il n'aime pas les cellules qui font plusieurs cases, mais j'en ai plein des comme ca..c'est un peu chaque titre de tableau
Donc je voulais savoir si y'a un moyen d'éviter ces warning, parce que après je ne peux pas ouvrir le fichier excel modifié avec Excel 2000
Et au mieux je l'ouvre avec Excel 2003 mais il n'a plus du tout la meme allure..la couleur et tout a disparu, je ne sais pas ce qu'il faut faire pour garder le style du fichier source
Si quelqu'un voit une solution, merci d'avance
Message édité par Kenshin0486 le 05-02-2006 à 21:58:32