Para projetos recentemente, você precisa exportar algumas informações para o Word. Encontrei muitas soluções on -line e agora compartilharei o resumo desses dias.
Atualmente, existem cerca de 6 soluções para exportar palavras de Java:
1. Jacob é a abreviação da ponte Java-com, que constrói uma ponte entre os componentes COM Java e da Microsoft. Use a biblioteca de link dinâmica da DLL que vem com o Jacob, e a chamada para programas COM na plataforma Java é realizada através do JNI. A geração da biblioteca de link dinâmica DLL requer suporte da plataforma Windows. Esta solução só pode ser implementada na plataforma Windows, que é sua limitação.
2. O Apache Poi inclui uma série de APIs que podem operar vários arquivos de formato baseados no formato de documento composto Microsoft Ole 2. Através dessas APIs, você pode ler e escrever Excel, Word e outros arquivos em Java. Seu processamento do Excel é muito poderoso e sua palavra é limitada à leitura. Atualmente, ele pode implementar apenas algumas operações de arquivo simples e não pode definir estilos.
3. O Java2word é um componente (biblioteca de classe) que chama os documentos do MS Office Word em um programa Java. Este componente fornece um conjunto simples de interfaces para um programa Java para chamar seus serviços para operar documentos do Word. Esses serviços incluem: abrir um documento, criar um novo documento, encontrar texto, substituir o texto, inserir texto, inserir imagens, inserir tabelas, inserir texto em marcadores, inserir imagens, inserir tabelas, etc. Preencha os dados em uma tabela para ler dados da tabela. Versão 1.1 Recursos aprimorados: Especifique estilos de texto, especifique estilos de tabela. Dessa forma, os documentos do Word podem ser dinamicamente digitados. É uma boa solução.
4. O ITEXT é um famoso projeto de código -fonte de código aberto, uma biblioteca de classes Java usada para gerar documentos em PDF. Por meio do ITEXT, você pode não apenas gerar documentos PDF ou RTF, mas também converter arquivos XML e HTML em arquivos PDF. Poderoso.
5. Estilo de saída JSP. Esta solução é simples de implementar, mas o estilo de manuseio é um pouco defeituoso e a exportação simples pode ser usada.
6. É muito simples fazê -lo em XML. O Word suporta o formato XML desde 2003. A idéia geral é primeiro usar o Office2003 ou 2007 para editar o estilo da palavra e, em seguida, salvar como XML, traduzir o XML em um modelo Freemarker e, finalmente, usar o Java para analisar o modelo Freemarker e o documento de saída. Os documentos do Word gerados dessa maneira são testados totalmente em conformidade com os padrões do Office, e o estilo de estilo e conteúdo é muito conveniente, e a impressão não será deformada. Os documentos gerados são exatamente os mesmos que os editados no cargo.
Com base nas referências das informações acima e em algumas opiniões on -line, finalmente escolhi a 6ª solução de exportação usando XML.
Aqui estão os exemplos básicos para implementar uma exportação simples de palavras:
Para exportar o conteúdo do modelo da palavra, a parte pinyin é a parte a ser substituída no tipo de código. :
Em seguida, salve o arquivo como .xml, abra o arquivo, encontre o título e modifique -o em $ {title} e substitua o conteúdo a ser substituído por sua vez. Em seguida, altere o sufixo do arquivo .xml para .ftl e importe o arquivo .ftl modelo para o diretório especificado. Carregue o pacote JAR Freemarker.jar. Comece a escrever o código:
Código principal:
classe pública WordTest {Configuração privada de configuração = 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, object> (); getData (datamap); Configuration.setClassfortemplatELoading (this.getClass (), ""); // o caminho em que o arquivo de modelo está localizado modelo t = null; tente {t = configuration.getTemplate ("test.ftl"); // Get model File} Catch (ioException e) {e.printStackTrace (); } Arquivo outfile = novo arquivo ("d:/outfile"+math.random ()*10000+". Doc"); // exportar escritor de arquivos para fora = null; tente {out = new BufferWriter (new OutputStreamWriter (new FileOutputStream (outfile))); } catch (filenotfoundException e1) {e1.printStackTrace (); } tente {t.process (datamap, out); // Preencha os dados de preenchimento no arquivo de modelo e emite -os para o arquivo de destino} Catch (modelException 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 ("Shenen", "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", "content"+i); list.add (mapa); } datamap.put ("list", list); }}Modifique o arquivo .FTL, encontre o local da lista e adicione a lista ao arquivo. Adicione <#List List como l> ao seu cabeçalho (adicione um <#List seu nome de coleção como xxxx>) e adicione </#list> ao final. Modifique o conteúdo da lista e adicione l. para o nome a ser produzido. Por exemplo, Xuehao, modifique -o para L.Xuehao. Isso é um pouco como o uso de expressões EL.
O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.