[Programa] Ler xls com PHP

Não Gravatar

Como a maioria do meu post mesmo isso não vem apenas com a intenção de fazer alguma "informação, para me lembrar de como eu ter resolvido um problema que me ocorreu: Na verdade a minha memória é geralmente falaciosa e googol Para encontrar a mesma informação mais de uma vez Eu não gosto muito ^ _ ^

Uma atividade que, muitas vezes temos de fazer é processar "on the fly" um xls (talvez como um resultado dell'upload disponível para um utilizador) e gerenciar os dados nele contidos (possivelmente estruturados como esperávamos outra coisa é .. impraticável), por exemplo, as tabelas popular em um banco de dados ou simplesmente visualizá-los no nosso site.

Bem, a solução para este problema é mais fácil do que você pensa.

Corre-se um projeto no Sourceforge que o torna disponível através da classe ExcelReader tudo o que precisamos.

Depois de incluir os dois reader.php arquivos e oleread.inc no nosso roteiro e estaremos prontos para fazer o trabalho "sujo".

Primeiro inicializamos a nossa classe e, em seguida passiamogli o arquivo a ser aberto:

  $ Data-> read ( 'nome_filel.xls'); 

A próxima coisa a fazer, é claro, é fazer um loop para cada linha e coluna apontando que:

  $ Data-> sheets [0] [ 'numRows'];
 $ Data-> sheets [0] [ 'numCols']; 

representam o número de linhas e colunas no xls (particularmente na primeira folha de papel).
Neste ponto, podemos tomar o valor contido em cada acesso célula ele como fazemos com uma matriz trivial:

  $ Data-> sheets [0] [ 'cells'] [$ i] [$ j]; 

Um script de exemplo para mostrar um vídeo dados de um arquivo xls em formato tabular, são as seguintes:

  <?
 Excel require_once '/ reader.php';
 $ Data = Spreadsheet_Excel_Reader novo ();
 $ Data-> setOutputEncoding ( 'CP1251');
 $ Data-> read ( 'nome_file.xls');
 error_reporting (E_ALL ^ E_NOTICE);

 echo "<table>";
 for ($ i = 1, $ i <= $ data-> sheets [0] [ 'numRows'], $ i + +) (
         echo "<tr>";
	 for ($ j = 1, $ j <= $ data-> sheets [0] [ 'numCols'], $ j + +) (
		 echo "<td>. $ data-> sheets [0] [ 'cells'] [$ i] td [$ j ]."</>";
	 )
	 echo "</ tr>";
 )
 echo "</ table>";
 ?> 

PS: Claro que você pode loop também nas folhas que compõem o arquivo .. xls

Reblog this post [com Zemanta]

Popularity: 8% [?]

Tags:


leave a response , or trackback from your own site. Você pode acompanhar quaisquer respostas a esta entrada através do RSS 2.0 feed. Você pode deixar uma resposta, ou trackback de seu próprio site.

AddThis Social Bookmark Button

Este site utiliza comentários IntenseDebate, mas eles não estão atualmente carregado porque o seu browser não suporta JavaScript, ou eles não carregar suficientemente rápido.

Deixe uma Resposta