Conversor de arquivo Excel para um Array
Publicado por Anderson Irias Hermogenes (última atualização em 06/03/2019)
[ Hits: 7.211 ]
Homepage: https://irias.com.br
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);
?>
Classe em php para listar subdiretórios e arquivos em html (vs certa)
Gerando um arquivo randômico com PHP
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Ativando e usando "zoom" no ambiente Cinnamon
Vídeo Nostálgico de Instalação do Conectiva Linux 9
Como realizar um ataque de força bruta para desobrir senhas?
existe algum hub de jogos online similiar ou igual dos browser (6)
Como botar o efeito de deslocar janelas (win + setas - windows) no lin... (0)
Thinkpads são bons mesmo ?! (3)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (2)









