✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como ler e escrever arquivos de planilha em PHP

1.001

Ao trabalhar em aplicativos da web, muitas vezes nos deparamos com uma situação em que precisamos brincar com arquivos de planilha. Podemos querer ler dados de planilhas e processá-los. Às vezes, também é necessário criar e escrever arquivos de planilha.

Neste artigo, estudamos como ler e escrever arquivos de planilha em PHP. O código que vamos explicar funcionará em 3 tipos de planilhas – CSV, XLSX e ODS.

Começando

Como desenvolvedor, gostaria de experimentar diferentes pacotes que podem ser úteis para resolver problemas do mundo real. Recentemente, encontrei um pacote chamado caixa / bico. Gostei da forma como a biblioteca executou as tarefas. Usando esta biblioteca, você pode processar arquivos de planilha com apenas algumas linhas de código.

Esta biblioteca é capaz de processar arquivos de qualquer tamanho. Pode ser que você esteja lidando com um arquivo grande. Durante o processo, o arquivo grande não deve consumir a memória e cria um problema de desempenho. A biblioteca do Spout resolve esse problema. Ele precisa de apenas 3 MB de memória para processar qualquer arquivo.

Antes de começar, seu servidor deve atender aos requisitos abaixo.

  • PHP versão 7.2 ou superior
  • Extensão PHP php_ziphabilitada
  • Extensão PHP php_xmlreaderhabilitada

O usuário pode verificar se todos os requisitos acima foram atendidos em seu servidor usando o phpinfo()método. Crie um arquivo PHP temporário e coloque a instrução abaixo nele.

Agora execute este arquivo PHP no navegador e você verá as configurações do PHP como versão, extensões, etc. Você deve ver xmlreadere as zipextensões estão habilitadas conforme mostrado na imagem abaixo.

Como ler e escrever arquivos de planilha em PHP

Depois de atender aos requisitos, instale o box/spoutpacote por meio do comando abaixo.

composer require box/spout

Ler e escrever arquivos de planilha em PHP

O pacote Spout permite que você interaja com arquivos XLSX, CSV e ODS. Por exemplo, estou escrevendo um código para arquivos XLSX.

Crie um arquivo XLSX de amostra users.xlsxno diretório raiz e adicione algumas entradas fictícias a ele. No meu caso, o arquivo tem entradas abaixo.

Como ler e escrever arquivos de planilha em PHP

A seguir, escreverei um código em reader.phparquivo que lerá users.xlsxe imprimirá os dados nele.

reader.php

<?php
require_once 'vendor/autoload.php';
 
use BoxSpoutReaderCommonCreatorReaderEntityFactory;
 
$filePath = getcwd().'/users.xlsx';
 
$reader = ReaderEntityFactory::createReaderFromFile($filePath);
 
$reader->open($filePath);
 
foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $row) {
        $cells = $row->getCells();
        foreach ($cells as $cell) {
            echo $cell->getValue();
        }
    }
}
 
$reader->close();

É simples assim. Vá em frente e experimente.

Por outro lado, podemos criar facilmente um arquivo XLSX e gravar dados nele. Vamos criar um arquivo writer.phpe adicionar o código abaixo nele.

escritor.php

<?php
require_once 'vendor/autoload.php';
 
use BoxSpoutWriterCommonCreatorWriterEntityFactory;
use BoxSpoutCommonEntityRow;
 
$filePath = getcwd().'/new-users.xlsx';
 
$writer = WriterEntityFactory::createXLSXWriter();
 
$writer->openToFile($filePath);
 
// Here is data for XLSX file
$data = [
    ['Name', 'Email'],
    ['Steve', '[email protected]'],
    ['David', '[email protected]'],
];
 
foreach ($data as $d) {
    $cells = [
        WriterEntityFactory::createCell($d[0]),
        WriterEntityFactory::createCell($d[1]),
    ];
 
    $singleRow = WriterEntityFactory::createRow($cells);
    $writer->addRow($singleRow);
}
 
$writer->close();

O código acima cria um new-users.xlsxarquivo em seu diretório raiz. Se você abrir este arquivo, verá que algumas linhas (usadas no código) foram inseridas nele.

No caso de arquivos CSV e ODS, você precisa criar um $writerobjeto da seguinte maneira.

$filePath = getcwd().'/new-users.ods';
$writer = WriterEntityFactory::createODSWriter();
 
$filePath = getcwd().'/new-users.csv';
$writer = WriterEntityFactory::createCSVWriter();

Espero que você entenda como ler e escrever arquivos de planilha em PHP. Eu gostaria de ouvir seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação