Artigos & Ideias

Ler Word com JAVA

Escrito por:

Em continuação do desenvolvimento da aplicação que estou a criar, ontem terminei a Leitura de documentos Word (.doc) com JAVA.
Na realidade é bastante simples.
Começa por fazer download da API POI, que ao contrário do Ler Excel com JAVA, com o Word facilita mais que o Aspose.

Após termos a API POI, fazemos os imports necessários:

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

De seguida:

File f = new File(caminhoArquivo);
FileInputStream is = new FileInputStream(f);

HWPFDocument wdoc = new HWPFDocument(is);
WordExtractor extractor = new WordExtractor(wdoc);
String conteudo = extractor.getText();
conteudo = conteudo.replace("\n", " ");
System.out.println("Conteúdo do ficheiro: " + conteudo);

Como também precisava de extrair o conteúdo de .RTF, temos de fazer:

import javax.swing.text.BadLocationException;
import javax.swing.text.rtf.RTFEditorKit;
import javax.swing.text.DefaultStyledDocument;

import java.io.InputStream;
import java.io.IOException;
import java.io.File;
import java.io.FileInputStream;
public class RtfParser
{
	public String enderecoRecurso;

	public void setEnderecoRecurso(String enderecoRecurso)
	{
		this.enderecoRecurso = enderecoRecurso; //caminho do ficheiro
	}

	public String getConteudo()
	{
		File f = new File(this.enderecoRecurso);
		FileInputStream is = null;

		try {
			is = new FileInputStream(f);
		}
		catch(IOException e) {
			System.out.println("ERRO: " + e.getMessage());
			return null;
		}

		String bodyText = null;

		DefaultStyledDocument styledDoc = new DefaultStyledDocument();
		try {
			new RTFEditorKit().read(is, styledDoc, 0);
			bodyText = styledDoc.getText(0, styledDoc.getLength());
		}
		catch (IOException e) {
			return "ERRO: Impossível extrair o texto do Documento RTF. Excepção: " + e;
		}
		catch (BadLocationException e) {
			return "ERRO: Impossível extrair o texto do Documento RTF. Excepção: " + e;
		}
		return bodyText;
	}
}

Pronto é isto, dúvidas, não hesitem.

4


Sobre o Autor

Carlos Gonçalves é um Freelancer com bastante experiência em linguagens de programação e webdesign. Vocacionado para as novas tecnologias, aposta na qualidade dos serviços, atendimento rápido e sempre disponível para melhor satisfazer os seus clientes. Autor do site cgoncalves.com

Comentários

  1. Gustavo  21 Julho 2010

    eu consigo ler o arquivo do word mas o problema é que , nao consigo colocar os dados do arquivo no banco de dados.

    o arquivo está assim:

    Doutor: Gustavo
    Fone: (62)3256-8970
    Cidade: Sao Paulo

    pode me ajudar?

    valeu

    (responder)
    • Carlos Gonçalves  21 Julho 2010

      Quando dizes “colocar os dados” referes-te ao conteúdo ou às propriedades do ficheiro?

      Se for o conteúdo, é simples, dado que já consegues ler o ficheiro word, seguindo o meu artigo, o conteúdo do ficheiro está guardado na variável conteudo, basta criares uma função inserir na base de dados que receba como argumento uma string e envias a variável conteúdo.

      Podes ver um exemplo de como inserir dados numa base de dados AQUI

      (responder)
  2. Amauri  10 Agosto 2010

    opa mano eu queria saber se tem como manipular os dados do arquivo word mais sem alterar a sua formatacao font…(o maximo de imformacao posivel).agradeceria se pudese postar algum exemplo.

    (responder)
    • Carlos Gonçalves  11 Agosto 2010

      Este método que expliquei não mantém informação da formatação, só obtém mesmo o conteúdo, é possível modifica-lo, modificando a variável “conteudo” e depois inserindo no ficheiro essa variável, porém a formatação do ficheiro irá perder-se.

      É provável que exista alguma maneira de manter a formatação, mas como não era esse o objectivo, neste caso não foi mantida.

      (responder)

Comentar

Nota: A moderação de comentários está activada e pode atrasar o teu comentário. Não há necessidade de reenviares o teu comentário.

More in Outros (1 of 12 articles)

# #