La création d'une feuille excel à partir d'un modèle en Java, les nouvelles versions d'Excel
J'ai trouvé le code suivant pour créer une feuille excel à partir d'un modèle existant avec les formats et ajouter des données et de l'enregistrer dans un nouveau fichier
POIFSFileSystem fs = new POIFSFileSystem(
new FileInputStream("template.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs, true);
Will load an xls, preserving its structure (macros included). You can then modify it,
HSSFSheet sheet1 = wb.getSheet("Data"); ...
et de l'enregistrer.
FileOutputStream fileOut = new FileOutputStream("new.xls");
wb.write(fileOut);
fileOut.close();
Cela fonctionne tout à fait bien. Mais mon problème est que j'ai affaire avec les nouvelles versions d'excel maintenant. J'ai donc besoin de développer un code similaire à gérer la nouvelle version de modèle. Quelqu'un peut-il suggérer comment puis-je faire cela? J'ai essayé de changer HSSWorkbook à XSSFWorkbook. cependant XSSFWorkbook n'a pas un constructeur qui me permet de passer un booléen. Aussi. quand je l'ai essayé, il copie les données, mais les lignes avec des données de ne pas conserver la mise en forme des colonnes que le modèle a.
OriginalL'auteur cma3982 | 2012-01-25
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner (mais il est toujours préférable d'utiliser la dernière version de POI pour toutes les corrections de bugs):
Si vous code contre les interfaces, alors vous pouvez simplement échanger entre HSSF et XSSF dans votre constructeur, et vous avez votre code de travail pour les deux formats
Assurez-vous d'avoir la dernière version de POI, et que vous avez inclus tous les Pots et leurs dépendances
Merci @Gagravarr j'ai remarqué que je n'avais pas le bocal dans l'environnement d'exécution. Cette exception est parti maintenant, mais getCell() sur la ligne est de retour null et donc j'ai besoin de créer une nouvelle cellule dans la ligne
Merci @Gagravarr j'ai remarqué que je n'avais pas le bocal dans l'environnement d'exécution. Cette exception est parti maintenant, mais getCell() sur la ligne est de retour null et donc j'ai besoin de créer une nouvelle cellule de la ligne et il ne marche pas copier la mise en forme du modèle
OriginalL'auteur Gagravarr
J'ai utilisé XSSF et il fonctionne très bien.
Juste besoin d'ajouter cette dépendance dans pom.xml de maven
OriginalL'auteur Bharthan