O Problema
Um de nossos clientes precisava coletar dados de diversas empresas, estes dados estavam todos em planilhas do excel e não tinha como pedir para estas empresas exportarem para cvs ou algo do tipo devido a diversos problemas que não vem ao caso, sendo assim a minha única alternativa era extrair os dados de dentro dos arquivos do excel através do PHP.
A Solução
Dando uma garimpada na NET acabei “trombando” com este cara PHP Excel Reader, o projeto era muito bom mas estava meio parado e com uma porção de bug, então um pessoal criou um fork deste projeto e coloco no code.google.
O código funciona muito bem e abaixo apresentarei alguns exemplo de como utilizar o PHP Excel Reader.
Exibindo Uma Planilha
Caso seu desejo seja apenas apresentar o conteúdo de um arquivo excel no navegador então faça o seguinte:
$data = new Spreadsheet_Excel_Reader("test.xls");
$data->dump();
Convertendo uma Planilha em Array
Não existe tal função na ferramenta, sendo assim eu fiz a implementação desta funcionalidade
$data = new Spreadsheet_Excel_Reader("test.xls")
$totalLinhas = $data->rowcount();
$totalColunas= $data->colcount();
for($i = 1; $i <= $totalLinhas; $i++){
for($j = 1; $j <= $totalColunas; $j++){
$a[$i][$j] = $data->val($i,$j);
}
}
return $a;
Conclusão
Com o PHP Excel Reader ficou bem fácil de trabalhar com arquivos do excel no php. Uma coisa que pude notar é que existem diferenças de comportamento durante a leitura de arquivos xls feitos no OpenOffice e nos feitos no Excel da Microsoft, isso acontece principalmente devido a formatação das células em datas moedas etc.. o que estou fazendo é deixar todas as colunas no formato String mesmo
Gerenciamento de Projetos com dotProject
Joomla!: Guia do Operador
Sistemas de Banco de Dados



Mtu bacana esti kodigu hein………… soh naum sei u ke eh akela linha “$this->_data->val($i,$j);” ??!?!
Podi me explicar ?
esse $this->_data->val($i,$j); na verdade tem que ser $data->val($i,$j); ai vai dar certo
vlw meu migu Bbattisti…vc eh 1 kara legau…… 1 pessoa ke ajuda as pessoa……
QdU PREcIsAH di aLGuMah AjudAH eH Soh falaH TAH??!?! ehhehe
Como instalo a classe, tipo tiro do zip e coloco onde? tentei mas ele dá erro ao chamar a classe.
você precisa dar um include na claase antes de usa-la
Nao funciona… tentei somete exibir a planilha e deu a seguinte mensagem:
Call to undefined method Spreadsheet_Excel_Reader::dump() in C:\wamp\www\hidrico\form_monitoramento.php
provavelmente faltou algum include! ou alguma configuração do XAMPP ele é meio embasado! Manda uma parte do teu source pragente dar uma olhada
Está dizendo que meu arquivo é ilegível. Pode me ajudar ?
Da uma conferida nas permissões do teu arquivo, usa windows ou linux?
Enfim, encontrei a solução
Muito obrigado!
Abraços
Meu caro,
A ferramenta funciona maravilhosamente bem. Só tenho uma dúvida que tá me deixando maluco. Como exibir células específicas de uma tabela?
ex.:
imaginemos a tabela exemplo.xls, ela tem 3 planilhas, em cada uma tenho informações alocadas em diferentes campos (ex.: célula a1= josé, célula b4=homem, celula d5=magro, etc.).
Digamos que eu precise apenas do conteúdo das célula a1 e d5 da primeira planilha (“josé” e “magro”) e do conteúdo das células b4 e d5 da segunda planilha (“fulano” e “qualquer coisa”). Como eu faço essa bendita coisa? Tô me matando aqui e nada. Você pode de dar uma mão nisso?
Agradeço desde já.
Elmo
Elmo na documentação
http://code.google.com/p/php-excel-reader/wiki/Documentation
Access data on a different sheet:
$data->val($row,$col,$sheet_index)
Com isso deve resolver o seu problema
Opa! Resolvido. Era exatamente isso.
Abração, cara. Valeu pela ajuda.
Olá, estou tentando apresentar uma tabela excel numa página php,
mas não aparece nada.
Meu código:
dump();
?>
Na página fica escrito:
dump(); ?>
Alguém poderia me indicar o erro?
Obrigado
Posta seu código no github pragente dar uma olhada, assim sem mais informação fica dificil ajudar, pode ser taaaaanta coisa
Eu postei o código, mas não apareceu no post.
O código é o seguinte:
include ‘excel_reader2.php’;
$data = new Spreadsheet_Excel_Reader(“planilha.xls”);
$data->dump();
Os nomes dos arquivos estão corretos, no entanto não aparece
a planilha do excel na minha página php.
Alguma idéia?
Obrigado
Pede ao PHP para ele exibir os erros, error_reporting(E_ALL) e posta ai o resultado!
Olá, estou tentando colocar este código de erros, no entanto,
aparece escrito “erro_reporting(E_ALL)” e não aparece o erro.
Olha o código:
include ‘excel_reader2.php’;
$data = new Spreadsheet_Excel_Reader(“planilha.xls”);
$data->dump();
error_reporting(E_ALL);
No entanto, na minha tela aparece:
dump(); error_reporting(E_ALL); ?>
Um detalhe muito estranho: eu já tentei colocar como comentário todo o
código php, no entanto, na tela sempre fica o mesmo escrito $data->dump();
Se eu coloco outro código em qualquer lugar, esse código aparece escrito
seguido do $data->dump();. Alguma idéia?
Obrigado.