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/phpspreadsheetApó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.
Também na biblioteca
Monitoramento de aplicações Kotlin: bibliotecas e ferramentas para rastreamento de desempenho
Trabalho com Markdown em C++: bibliotecas, parsers e ferramentas
SwiftyUserDefaults para Swift: guia completo com exemplos
Configuração de aplicações Kotlin: bibliotecas, abordagens e ferramentas
Trabalhando com Markdown em Swift (iOS/macOS): bibliotecas Down, SwiftMarkdown