PhpSpreadsheet para PHP: guia completo com exemplos práticos

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

PhpSpreadsheet para PHP: guia completo com exemplos práticos

1. O que é e para que serve

PhpSpreadsheet é uma biblioteca poderosa para a linguagem PHP, projetada para ler, escrever e gerenciar planilhas eletrônicas nos formatos Excel (XLSX, XLS), LibreOffice Calc (ODS), CSV, HTML e outros. Ela é a sucessora da popular, mas desatualizada, biblioteca PHPExcel, que encerrou seu desenvolvimento em 2017. O PhpSpreadsheet foi totalmente reescrito seguindo os padrões modernos do PHP (PSR-4, PSR-7, PSR-12) e suporta grandes volumes de dados, fórmulas complexas, estilos, gráficos e formatação condicional.

Para que serve? No desenvolvimento web, é comum precisar exportar dados do banco para relatórios Excel, importar planilhas enviadas por usuários, gerar faturas, listas de preços ou documentos financeiros. O PhpSpreadsheet permite fazer isso de forma programática, sem instalar pacotes de escritório no servidor. Ele suporta mais de 30 formatos de arquivo, incluindo XLSX, ODS, CSV, HTML, PDF (através de bibliotecas externas), e pode trabalhar com fórmulas, formatação condicional, células mescladas, imagens e comentários.

A biblioteca é ativamente mantida (mais de 3000 estrelas no GitHub) e usada em projetos como Laravel Excel, PhpOffice Suite e diversos sistemas corporativos. É ideal para criar relatórios, migrar dados, automatizar fluxos de documentos e integrar com sistemas CRM/ERP.

2. Instalação

O PhpSpreadsheet é instalado via Composer, o gerenciador de dependências padrão do PHP. Certifique-se de ter o PHP versão 7.4 ou superior (recomenda-se 8.0+).

composer require phpoffice/phpspreadsheet

Após a instalação, a pasta vendor e o arquivo composer.json serão criados no projeto. Para usar a biblioteca, basta incluir o autoload:

require 'vendor/autoload.php';

Se você usa um framework (Laravel, Symfony), a biblioteca geralmente é carregada automaticamente através de service providers.

3. Primeiros passos — exemplo mínimo funcional

Vamos criar um script simples que gera um arquivo Excel com uma tabela de dados e o disponibiliza para download:

getActiveSheet();

// 2. Preenche as células
$sheet->setCellValue('A1', 'Nome');
$sheet->setCellValue('B1', 'Email');
$sheet->setCellValue('A2', 'João Silva');
$sheet->setCellValue('B2', 'joao@exemplo.com');
$sheet->setCellValue('A3', 'Maria Souza');
$sheet->setCellValue('B3', 'maria@exemplo.com');

// 3. Configura os cabeçalhos para download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="usuarios.xlsx"');
header('Cache-Control: max-age=0');

// 4. Escreve o arquivo na saída
$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
exit;

Este código cria o arquivo usuarios.xlsx com duas linhas de dados. Você pode abri-lo no Excel ou LibreOffice Calc.

4. Principais métodos/funções/classes

4.1. Spreadsheet::__construct()

Assinatura: new Spreadsheet()

O que faz: Cria um novo documento vazio com uma planilha padrão.

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
echo $sheet->getTitle(); // "W                    

Recommendations