Para proyectos recientemente, debe exportar algo de información a Word. He encontrado muchas soluciones en línea, y ahora compartiré el resumen de estos días.
En la actualidad, hay aproximadamente 6 soluciones para exportar palabras de Java:
1. Jacob es la abreviatura del puente Java-com, que construye un puente entre los componentes COM de Java y Microsoft. Use la biblioteca de enlaces dinámico DLL que viene con Jacob, y el llamado a los programas COM en la plataforma Java se realiza a través de JNI. La generación de la biblioteca de enlaces dinámicos DLL requiere soporte de la plataforma Windows. Esta solución solo se puede implementar en la plataforma de Windows, que es su limitación.
2. Apache POI incluye una serie de API que pueden operar varios archivos de formato basados en el formato de documento compuesto de Microsoft Ole 2. A través de estas API, puede leer y escribir Excel, Word y otros archivos en Java. Su procesamiento de Excel es muy poderoso, y su palabra se limita a la lectura. Actualmente, solo puede implementar algunas operaciones de archivo simples y no puede establecer estilos.
3. Java2word es un componente (biblioteca de clases) que llama a los documentos de MS Office Word en un programa Java. Este componente proporciona un conjunto simple de interfaces para que un programa Java llame a sus servicios para operar documentos de Word. Estos servicios incluyen: abrir un documento, crear un nuevo documento, encontrar texto, reemplazar texto, insertar texto, insertar imágenes, insertar tablas, insertar texto en marcadores, insertar imágenes, insertar tablas, etc. Complete los datos en una tabla para leer los datos de la tabla. Versión 1.1 Características mejoradas: Especifique los estilos de texto, especifique los estilos de tabla. De esta manera, los documentos de Word se pueden escribir dinámicamente. Es una buena solución.
4. ITEXT es un famoso proyecto SourceForge SourceForge, una biblioteca de clase Java utilizada para generar documentos PDF. A través de ITEXT, no solo puede generar documentos PDF o RTF, sino también convertir archivos XML y HTML en archivos PDF. Poderoso.
5. Estilo de salida JSP. Esta solución es fácil de implementar, pero el estilo de manejo es un poco defectuoso y se puede usar una exportación simple.
6. Es muy simple hacerlo en XML. Word es compatible con el formato XML desde 2003. La idea general es usar primero Office2003 o 2007 para editar el estilo de la palabra, luego guardar como XML, traducir el XML en una plantilla de marca libre y finalmente usar Java para analizar la plantilla de marca freemarker y la salida Doc. Los documentos de Word generados de esta manera se prueban completamente con los estándares de la oficina, y el estilo y el control de contenido son muy convenientes, y la impresión no se deformará. Los documentos generados son exactamente los mismos que los editados en el cargo.
Según las referencias de la información anterior y algunas opiniones en línea, finalmente elegí la sexta solución de exportación usando XML.
Estos son los ejemplos básicos para implementar una simple exportación de palabras:
Para exportar el contenido de la plantilla de palabras, la parte pinyin es la parte que se reemplazará en el tipo de código. :
Luego guarde la palabra como el archivo .xml, abra el archivo, busque el título y modifíquelo a $ {title} y reemplace el contenido para ser reemplazado a su vez. Luego cambie el sufijo del archivo .xml a .ftl e importe el archivo de plantilla .ftl al directorio especificado. Cargue el paquete jar freemarker.jar. Comience a escribir código:
Código principal:
clase pública WordTest {Configuración privada Configuración = NULL; public WordTest () {Configuration = New Configuration (); configuración.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, Object> (); getData (DataMap); Configuration.setClassfortEmplAteloading (this.getClass (), ""); // La ruta donde el archivo de plantilla se encuentra plantilla t = null; intente {t = configuration.gettemplate ("test.ftl"); // Obtener archivo de plantilla} Catch (ioException e) {E.PrintStackTrace (); } Archivo outFile = nuevo archivo ("d:/outFile"+math.random ()*10000+". Doc"); // Exportar escritor de archivos out = null; intente {out = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (OUTFILE))); } Catch (FileNotFoundException e1) {e1.printstackTrace (); } try {t.process (dataMap, out); // Llena los datos de relleno en el archivo de plantilla y lo lleva al archivo de destino} catch (TemplateException e) {E.PrintStackTrace (); } catch (ioException e) {E.PrintStackTrace (); }} private void getData (map <string, object> dataMap) {datAMap.put ("title", "title"); datAMAP.put ("Nian", "2016"); datamap.put ("yue", "3"); datamap.put ("ri", "6"); datamap.put ("shenheren", "lc"); List <map <string, object >> list = new ArrayList <map <string, object >> (); for (int i = 0; i <10; i ++) {map <string, object> map = new HashMap <String, Object> (); map.put ("xuehao", i); map.put ("neirong", "contenido"+i); list.add (mapa); } dataMap.put ("List", List); }}Modifique el archivo .ftl, busque la ubicación de la lista y agregue la lista al archivo. Agregue <#list List as L> a su encabezado (agregue un nombre de colección <#List como xxxx>) y agregue </#list> al final. Modifique el contenido de la lista y agregue l. al nombre a ser salido. Por ejemplo, Xuehao, modifíquelo a L.xuehao. Esto es un poco como el uso de expresiones EL.
Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.