Artigos & Ideias

Ler Folha Excel com PHP

Escrito por:

Ontem no fórum Webtuga e no Portugal-a-Programar colocaram-me a mesma questão por duas vezes.
Como ler Folhas Excel utilizando PHP.

A resposta não é tão óbvia quanto parece, e é um pouco complexa.
Ao contrário daqui: Ler PDF e Documentos Word com PHP, esta resposta vai um pouco mais além, pois temos que manusear as colunas e células da folha do excel.
Passo então a explicar como manusear a leitura de folhas excel com PHP.

Ler Folha Excel (.xls)

Para que seja possível a leitura do ficheiro excel, primeiramente precisas de instalar a classe phpExcelReader.
Uma vez na posse da classe, executamos a seguinte instrução PHP para ler a folha excel:

require_once 'Excel/reader.php';

$reader = new Spreadsheet_Excel_Reader();
$reader->setOutputEncoding("UTF-8");

$reader->read("test.xls");

for ($i = 1; $i < = $reader->sheets[0]["numRows"]; $i++)
{
	for ($j = 1; $j < = $reader->sheets[0]["numCols"]; $j++)
	{
		print "\"".$reader->sheets[0]["cells"][$i][$j]."\",";
	}
	echo "\n";
}

Alguma dúvida, coloquem.

7


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. Luis Pereira  26 Julho 2010

    Carlos ,

    Eu tenho uma pagina em PHP onde tenho 2 tabelas e queria por um icon do excel no topo da tabela para ser clicado e exportar essa tabela .
    O problema é que quando uso codigo do mesmo genero que o teu o que aquilo faz é limpar a pagina e exportar para excel mas a pagina fica em branco pois o codigo redireciona o output para o exel , mas depois a pagina onde tinha a tabela e o icon fica em branco.

    Sabes como resolver este problema?

    (responder)
    • Carlos Gonçalves  26 Julho 2010

      Como é que estás a fazer? Se a tua tabela (a exportar) tem os dados gravados numa BD a não ser que faças delete eles não desaparecem.

      Não sei como tens, mas uma forma de fazeres é passares a informação para um array, e o array para o excel, dessa forma mesmo que “limpe”, “limpa” é o array, deixando a tabela intacta.

      (responder)
  2. Augusto  30 Novembro 2010

    Classe diferente do que está no seu codigo. Quando compilo com seu exemplo e os includes corretos ainda mostra erro e falta uma pasta definida nas duas classes. Se puder me envie a classe ajustada por favor! Obrigado

    (responder)
    • Carlos Gonçalves  1 Dezembro 2010

      Olá Augusto, se me acompanha há algum tempo já sabe, se é a primeira vez que aqui vem fica a saber, que raramente coloco a totalidade do código. O objectivo é ensinar e aprender, não “dar a papinha feita”. Com isto quero dizer que, o código que coloquei não é uma classe, é apenas um excerto dela, excerto esse que lê um ficheiro test.xls

      (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)

# #