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



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.
Era justamente isso que eu estava procurando, funcionou perfeitamente, mas tive que arrumar algumas coisas no código porque estava dando erro, por exemplo trocar a função split pela explode.
não consegui ver, oq será que stou fazendo de errado
Depende da versão do PHP que vc esta usando!
Boa tarde…
Preciso de uma ajuda, e desde já agradeço!
Depois que transformei a planilha em array, como faço para colocá-la em um banco de dados mysql?
Obrigado e parabéns pelo site.
Carlos
#carlos ai vc vai ter que estudar um pouco sobre PHP e integracao com mysql! nao vai ser uma resposta de um blog que vai resolver o teu problema!
Grande Battisti!!!
Um tempo atrás descobri esta classe e dei uma passada por cima…
Desta vez fui atrás dela pela necessidade, achei ela aqui no teu site e realmente ela é MUITO BOA e o melhor de tudo; F U N C I O N A !! =P
Abraço.
Zanette funciona sim e muito bem! aqui na Webgenium agente usa ela para que as empresa nos montem arquivos para importação!
Muita gente nao sabe como gerar CSV ai até explicar da muito trabalho eu falo manda em XLS que agente se resolve por aqui!