publicidade

Importar dados de um Arquivo do Word no PHP

Você já precisou manipular os dados de um arquivo do Word (.doc) com PHP? É possível que não, mas se como eu, um dia precisou fazer isso, saiba que se você roda seu sistema em um servidor Windows, não vai ser complicado. Para isso o Microsoft disponibiliza uma biblioteca que pode ser ativada no PHP e vai fazer a ponte nessa tarefa.

Eu, particularmente, precisava abrir um, ou vários arquivos do Word e pegar os dados de uma tabela para interpretá-los e manipular de acordo com a necessidade do meu sistema. Minha utilização foi em um servidor local usando o Xampp. Assim fiz as configurações básicas necessárias e parti para o código.

Primeiro passo é ativar a biblioteca (caso ela não esteja ativada ainda) e isso é feito no arquivo de configuração do php.ini. No meu caso ele está dentro da pasta “C:\xampp\php”. Você deve procurar nas extensões, uma chamada “php_com_dotnet.dll’ e ativá-la. Se ela já estiver lá, mas com um “;” no início, é só remover esse caractere para “descomentar” a linha. Bom, por aqui tudo certo, agora vamos ao código no PHP.



A primeira coisa a fazer agora é instanciar o objeto COM. Passaremos “word.application” como parâmetro, porque o que vamos abrir são arquivos do Microsoft Word. E vamos usar um “die” para encerrar a execução da aplicação caso haja algum erro na tentativa de criar o objeto. Em seguida tentamos abrir o arquivo.

# Instanciamos o objeto COM
$word = New COM("word.application") or die ("Ocorreu um Erro!");

# Definimos a variável $filename e atribuímos a ela o nome do arquivo que vamos abrir.
$filename = "teste.docx";

# Agora usamos o método open para abrir o arquivo.
$word->Documents->Open(realpath($filename));

O próximo passo é usar o método Content, para extrair o conteúdo do arquivo e armazenar em uma variável.

$content = $word->ActiveDocument->Content;

Se a sua intenção é exibir o conteúdo na tela, o ideal é converter a quebra de linha do Word para o padrão do HTML (<br>). Agora para ver se funcionou, podemos imprimir o resultado na tela usando o comando “echo”.

$content = nl2br($content);
echo $content ;

Depois de realizar a impressão na tela podemos fechar o arquivo, usando os metodos Close e Quit e para evitar problemas com a memória vamos apagar por completo o objeto criado anteriormente.

$word->ActiveDocument->Close(false);
$word->Quit();
$word = NULL;
unset($word);

No meu caso, precisei manipular os dados da tadela do word e gerar um novo conteúdo usando array e json, mas aí tudo já dentro do PHP e foi bem tranquilo.

Importar dados de um Arquivo do Word no PHP

Você já precisou manipular os dados de um arquivo do Word (.doc) com PHP? É possível que não, mas se como eu, um dia precisou fazer isso, saiba que...

publicidade

Deixe um comentário:


Deixe seu comentário. Só serão exibidos comentários ligados ao texto do post. Links serão removidos.

Comentários: