À l'aide de modèles Excel avec Apache POI
Question de base: Comment puis-je charger un modèle Excel pour une utilisation avec les POI et puis l'enregistrer dans un fichier XLS?
Edit:
La réponse est:
FileInputStream inputStream = new FileInputStream(new File(templateFile));
Workbook workbook = new HSSFWorkbook(inputStream);
(Il suffit de charger le modèle comme un classeur, puis d'écrire le classeur en tant que fichier XLS ailleurs.)
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de le charger comme un standard .xls à l'aide de POI, de le modifier, puis de l'enregistrer ?
C'est l'approche que j'ai utilisé pour l'insertion de macros dans un PI-généré .xls. J'ai créer le fichier avec la macro (il est vrai qu'un .xls) et puis de la charger dans mon application, le remplir avec les données et les enregistrer en tant que nouvellement créé .xls. Que tout a bien fonctionné.
Vous pouvez insérer directement une .xls qui servira de modèle et de le modifier.
Va charger un xls, en préservant sa structure (macros incluses). Vous pouvez ensuite le modifier,
et de l'enregistrer.
Espère que cette aide.
Vous pouvez également utiliser le modèle interne en tant que ressource.
Et enregistrer l':
Vous pouvez créer un fichier XLS à partir d'un XLS modèle.
Mais, pour ce faire, vous devez créer une copie du modèle à chaque fois que vous besoin d'utiliser le modèle. Si non, vous devrez modifier le modèle d'origine (ce que vous ne voulez pas).
Donc, vous devez d'abord obtenir votre fichier de modèle:
Copier le fichier de modèle:
Accéder à la nouvelle copie du fichier:
Créer un
Workbook
, de sorte que vous pouvez écrire dans votre nouveau fichier:Après l'écriture dans votre classeur:
Une astuce pour créer un XLS fichier de modèle est de marquer le modèle avec une variable pour localiser la position que vous souhaitez remplir. Comme:
Pour des fichiers excel avec
.xlsx
utiliser les éléments suivants:Vous pouvez utiliser XSSF par l'ajout de poi-ooxml dépendance maven pom.xml si vous voulez l'enregistrer en 2007+ format.
Si vous avez template.xlsx fichier avec une fiche de synthèse dans ce xmls et que vous souhaitez modifier une cellule particulière, vous pouvez le faire aussi: