Trabalhando com CSV em PHP: biblioteca PhpSpreadsheet

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é PhpSpreadsheet e para que serve?

PhpSpreadsheet é uma poderosa biblioteca PHP para trabalhar com planilhas eletrônicas. Ela permite ler, escrever e editar arquivos nos formatos CSV, XLS, XLSX, ODS e outros. Ao contrário das funções nativas do PHP (como fgetcsv), o PhpSpreadsheet oferece uma abordagem orientada a objetos, processamento automático de codificações, suporte a estilos, fórmulas e grandes volumes de dados. A biblioteca é ideal para importação/exportação de dados de formulários web, geração de relatórios, migração entre bancos de dados e integração com Excel/Google Sheets.

Instalação

A instalação é feita via Composer:

composer require phpoffice/phpspreadsheet

Após a instalação, inclua o autoload:

require 'vendor/autoload.php';

Funções principais

  • Leitura de CSV — carregar um arquivo em um objeto Spreadsheet com detecção automática do delimitador.
  • Escrita de CSV — criar e salvar um arquivo com configuração de delimitador, aspas e BOM.
  • Trabalhar com planilhas — criar, excluir, renomear e copiar planilhas.
  • Formatação — estilos de células (fontes, cores, bordas, alinhamento).
  • Fórmulas e funções — suporte a SUM, AVERAGE, IF e outras.
  • Processamento de grandes dados — escrita em fluxo via Xlsx Writer para reduzir o consumo de memória.

Exemplo de código: leitura e escrita de CSV

Leitura de um arquivo CSV e exibição dos dados:

use PhpOffice\\PhpSpreadsheet\\IOFactory;

$inputFileName = './data.csv';$spreadsheet = IOFactory::load($inputFileName);$worksheet = $spreadsheet->getActiveSheet();$data = $worksheet->toArray();

foreach ($data as $row) { echo implode(', ', $row) . "";}

Escrita de dados em CSV:

use PhpOffice\\PhpSpreadsheet\\Spreadsheet;use PhpOffice\\PhpSpreadsheet\\Writer\\Csv;

$spreadsheet = new Spreadsheet();$sheet = $spreadsheet->getActiveSheet();

$sheet->setCellValue('A1', 'Nome');$sheet->setCellValue('B1', 'Email');$sheet->setCellValue('A2', 'João');$sheet->setCellValue('B2', 'joao@example.com');

$writer = new Csv($spreadsheet);$writer->setDelimiter(';');$writer->setEnclosure('"');$writer->save('./output.csv');

Quando usar

O PhpSpreadsheet é recomendado nos seguintes casos:

  • É necessário suporte a múltiplos formatos (CSV, XLSX, ODS) em um único projeto.
  • É necessária formatação precisa (cores, fontes, mesclagem de células).
  • É preciso trabalhar com fórmulas ou grandes conjuntos de dados (mais de 10.000 linhas).
  • Você prefere o estilo OOP e não quer escrever parsers de baixo nível.

Para tarefas simples (como ler um único CSV com estrutura conhecida), você pode usar as funções nativas do PHP. Mas se o projeto crescer e exigir flexibilidade, o PhpSpreadsheet se tornará uma ferramenta indispensável.

Recommendations