OpenSource


This discussion is very interesting:
Why do people insist on doing EVERYTHING in Java?

Advertisements

I highly recommended this article : Jboss Seam: A “Deep Integration” Framework

Voici l’article :
Java EE 6 Gets it Right
Le débat sur TheServerSide est aussi très intéressant à lire : Rod Johnson: “Java EE 6 Gets it Right”

Pour exporter les données dans la BDD vers les fichiers Excel, j’utilise un modèle Excel stocké dans la BDD comme un template pour écrire les données. Mais le modèle Excel utilise les formules pour synchroniser certaines données entre ses quatre feuilles, disons: sheet1, sheet2, sheet3, sheet4. C-à-d, on ne peut que modifier ces infos dans la feuille ‘sheet1’ (ces cellules sont protégées dans les autres feuilles), ces modifications se reflexent automatiquement sur les autres feuilles via les formules.

Parce que avec POI, les cellules Excel sont typé (voir la classe HSSFCell), le programme d’export ne peut pas écrire directement les valeurs dans les cellules des feuilles: sheet2, sheet3, sheet4, sans changer le type de cellule (biensur, je veux garder les formules pour ces feuilles). Donc la solution choisie est de remplir seulement la feuille ‘sheet1’ et laisser Excel remplir les autres feuilles via les formules.

Avec cette solution, il y a un problème suivant:

Si le fichier exporté n’est pas ouvert par Microsoft Excel, les formules ne sont pas exécutées et les feuilles: sheet2, sheet3, sheet4 peuvent contenir les données fautes.
Si l’utilisateur est un humaine, ce n’est pas un problème parce que pour exploiter les données, il doit ouvrir le fichier avec Microsoft Excel et donc faire exécuter les formules.
Mais si l’utilisateur est un programme (comme mon programme d’import – qui va importer les données dans un fichier Excel dans la BDD), il va lire le fichier sans ouvrir le fichier par Microsoft Excel, donc les formules ne sont pas exécutées et les données lues sont erronnées.

Je ne trouve pas une méthode dans POI qui force les formules Excel d’exécuter sans l’ouvrir par Microsoft Excel ??.

Voici POI

Pour tous ceux qui aiment OpenSource : Open Source Software Killers