Pour les projets récemment, vous devez exporter des informations sur Word. J'ai trouvé de nombreuses solutions en ligne, et maintenant je partagerai le résumé de ces jours.
À l'heure actuelle, il existe environ 6 solutions pour exporter des mots de Java:
1. Jacob est l'abréviation du pont Java-com, qui construit un pont entre les composants com de Java et Microsoft. Utilisez la bibliothèque DLL Dynamic Link qui est livrée avec Jacob, et les programmes d'appel à COM sur la plate-forme Java sont réalisés via JNI. La génération de bibliothèque DLL Dynamic Link nécessite la prise en charge de la plate-forme Windows. Cette solution ne peut être implémentée que sur la plate-forme Windows, qui est sa limitation.
2. Apache POI comprend une série d'API qui peut faire fonctionner divers fichiers de format basés sur le format de document composé Microsoft Ole 2. Grâce à ces API, vous pouvez lire et écrire Excel, Word et d'autres fichiers en Java. Son traitement Excel est très puissant et son mot est limité à la lecture. Actuellement, il ne peut implémenter que des opérations de fichiers simples et ne peut pas définir des styles.
3. Java2word est un composant (bibliothèque de classe) qui appelle MS Office Word Documents dans un programme Java. Ce composant fournit un ensemble simple d'interfaces pour qu'un programme Java appelle ses services pour faire fonctionner des documents Word. Ces services comprennent: l'ouverture d'un document, la création d'un nouveau document, la recherche de texte, le remplacement du texte, l'insertion de texte, l'insertion d'images, l'insertion de tables, l'insertion de texte dans les signets, l'insertion d'images, l'insertion de tables, etc. Remplissez les données dans une table pour lire les données de la table. Version 1.1 Fonctions améliorées: spécifiez les styles de texte, spécifiez les styles de table. De cette façon, les documents de mots peuvent être typés dynamiquement. C'est une bonne solution.
4. Itext est un célèbre projet de site de site open source Sourceforge, une bibliothèque de classe Java utilisée pour générer des documents PDF. Grâce à ITEXT, vous pouvez non seulement générer des documents PDF ou RTF, mais également convertir les fichiers XML et HTML en fichiers PDF. Puissant.
5. Style de sortie JSP. Cette solution est simple à implémenter, mais le style de manutention est un peu défectueux et une exportation simple peut être utilisée.
6. Il est très simple de le faire en XML. Word prend en charge le format XML depuis 2003. L'idée générale est d'utiliser d'abord Office2003 ou 2007 pour modifier le style de mot, puis enregistrer sous le nom de XML, traduire le XML dans un modèle Freemarker et enfin utiliser Java pour analyser le modèle Freemarker et la sortie DOC. Les documents de mots générés de cette manière sont testés entièrement pour se conformer aux normes du bureau, et le contrôle du style et du contenu est très pratique, et l'impression ne sera pas déformée. Les documents générés sont exactement les mêmes que ceux édités en fonction.
Sur la base des références des informations ci-dessus et de certaines opinions en ligne, j'ai finalement choisi la 6e solution d'exportation à l'aide de XML.
Voici les exemples de base pour implémenter une exportation de mots simples:
Pour exporter le contenu du modèle de mot, la partie pinyin est la pièce à remplacer dans le type de code. :
Ensuite, enregistrez le fichier .xml en tant que fichier .xml, ouvrez le fichier, trouvez le titre et modifiez-le sur $ {title}, et remplacez le contenu à remplacer à son tour. Modifiez ensuite le suffixe de fichier .xml en .ftl et importez le fichier de modèle .ftl dans le répertoire spécifié. Chargez le package JAR Freemarker.jar. Commencez à écrire du code:
Code principal:
classe publique WordTest {configuration privée Configuration = null; public wordTest () {configuration = new Configuration (); configuration.setDefaultEncoding ("UTF-8"); } public static void main (string [] args) {wordTest test = new WordTest (); test.CreatEword (); } public void createWord () {map <string, object> dataMap = new hashmap <string, objet> (); getData (dataMap); Configuration.SetClassForTemplateLoading (this.getClass (), ""); // Le chemin d'accès où le fichier de modèle est localisé Tablate T = null; try {t = configuration.getTemplate ("test.ftl"); // Obtenez un fichier de modèle} catch (ioException e) {e.printStackTrace (); } File outfile = nouveau fichier ("d: / outfile" + math.random () * 10000 + ". Doc"); // Exportation de fichier scénariste OUT = NULL; try {out = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (outfile))); } catch (filenotfoundException e1) {e1.printStackTrace (); } essayez {t.process (dataMap, out); // Remplissez les données de remplissage dans le fichier de modèle et sortiez-les dans le fichier cible} catch (modèleException e) {e.printStackTrace (); } catch (ioException e) {e.printStackTrace (); }} private void getData (map <string, objet> dataMap) {dataMap.put ("title", "title"); datamap.put ("Nian", "2016"); dataMap.put ("yue", "3"); dataMap.put ("Ri", "6"); dataMap.put ("Shenheren", "LC"); List <map <string, objet >> list = new ArrayList <map <string, objet >> (); for (int i = 0; i <10; i ++) {map <string, object> map = new hashmap <string, object> (); map.put ("xuehao", i); map.put ("neirong", "contenu" + i); list.add (map); } dataMap.put ("list", list); }}Modifiez le fichier .ftl, recherchez l'emplacement de la liste et ajoutez la liste au fichier. Ajoutez <#List list as l> à son en-tête (ajoutez un nom de la collection <#List de votre collection sous le nom de xxxx>) et ajoutez </ # list> à la fin. Modifiez le contenu de la liste et ajoutez l. au nom pour être sorti. Par exemple, xuehao, modifiez-le en l.xuehao. C'est un peu comme l'utilisation des expressions EL.
Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.