Conversor de arquivo Excel para um Array
Publicado por Anderson Irias Hermogenes (última atualização em 06/03/2019)
[ Hits: 6.876 ]
Este é um simples script em PHP que converte um arquivo Microsoft Excel (.xlsx) em um Array PHP, em que cada célula do arquivo Excel se transforma em um índice do Array. Para seu funcionamento ele depende da classe ZipArchive. Link oficial: http://php.net/manual/en/class.ziparchive.php.
Um arquivo Microsoft Excel (.xlsx), está no formato .zip.
Comando file utilizado no terminal do Linux Ubuntu para visualizar o real formato do arquivo:
$ file teste-tabela-excel.xlsx
teste-tabela-excel.xlsx: Zip archive data, at least v2.0 to extract
Assim para realizar sua leitura, é necessário descompactar o arquivo .xlsx e pegar os dados necessários para o converter em um Array PHP. Em meu Git Hub disponibilizei o script e um arquivo para teste. Link: https://github.com/andersonirias/xlsx-array-conversor.
<?php $zip = new ZipArchive; $res = $zip->open('teste-tabela-excel.xlsx'); if ($res === true) { $zip->extractTo('xlsx/'); $zip->close(); $sheet1 = simplexml_load_file('xlsx/xl/worksheets/sheet1.xml'); if ($sheet1 == false) exit('Falha ao abrir o arquivo sheet1.xml'); $tabela = []; foreach ($sheet1 as $item['row']) { foreach ($item['row'] as $item2['row']) { if (count($item2['row']) > 0) { foreach ($item2['row']->c as $row) { $atr = json_decode(json_encode($row), 1); if ($atr == false) exit('Falha ao converter dados'); if (isset($atr['@attributes']['t'])) $tabela[$atr['@attributes']['r']] = true; else $tabela[$atr['@attributes']['r']] = 'vazio'; } } } } if (count($tabela) > 0) { $sharedStrings = simplexml_load_file('xlsx/xl/sharedStrings.xml'); if ($sharedStrings == false) exit('Falha ao abrir o arquivo sharedStrings.xml'); $i = 0; $dados = json_decode(json_encode($sharedStrings), 1); if ($dados == false) exit('Falha ao converter dados do arquivo sharedStrings.xml'); foreach ($tabela as $key => $item) { if (trim($item) != 'vazio') { $tabela[$key] = $dados['si'][$i]['t']; $i++; } } } } else { exit('Falha ao abrir arquivo .xlsx'); } print_r($tabela); ?>
Página de downloads que identifica arquivos por extensão
Classe em php para listar subdiretórios e arquivos em html (vs certa)
Gerando um arquivo randômico com PHP
Upload de arquivos com barra de progresso muito util
Nenhum comentário foi encontrado.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
minha maquina foi desinstalada o firefox eu preciso reinstalar tentei... (3)
Não consigo instalar o WineHQ no meu notebook vaio FE15 (Debian) (7)