Fala, pessoal! Tudo bom? Hoje vamos continuar mexendo com o PHPSpreadsheets. No artigo anterior vimos como criamos planilhas. E agora, vamos abrir planilhas, recuperar dados e alterar.
Do mesmo modo que é simples criar uma planilha. O PHPSpreadsheets possui uma classe Factory para abrir qualquer tipo de extensão relacionada a planilhas. No caso, essa classe é a ‘\PhpOffice\PhpSpreadsheet\IOFactory’. E, para utilizá-la no código, basta dar o use no arquivo.
Vamos ver na prática como. Primeiramente, abriríamos um arquivo de planilha e retornaríamos os valores de algumas células. Para isso, vamos utilizar a spreadsheet2.xlsx que criamos no último artigo.
<?php require 'vendor/autoload.php'; //autoload do projeto use PhpOffice\PhpSpreadsheet\IOFactory; //classe responsável pelo load dos arquivos de planilha use PhpOffice\PhpSpreadsheet\Spreadsheet; //classe responsável pela manipulação da planilha $spreadsheet = IOFactory::load('spreadsheet2.xlsx'); //carregando a planilha spreadsheet2 em um objeto PHP $sheet = $spreadsheet->getActiveSheet(); //retornando a aba ativa $cellA1 = $sheet->getCell('A1')->getValue(); //$cellA1 recebe os dados da célula A1 $cellD1 = $sheet->getCell('D1')->getValue(); //$cellD1 recebe os dados da célula D1 $cellB2 = $sheet->getCell('B2')->getValue(); //$cellB2 recebe os dados da célula B2 echo ('A1 = ' . $cellA1 . PHP_EOL); //retornando os dados da célula A1 echo ('D1 = ' . $cellD1 . PHP_EOL); //retornando os dados da célula D1 echo ('B2 = ' . $cellB2 . PHP_EOL); //retornando os dados da célula B2
E então, é só rodar.
Com isso, agora fica muito mais fácil manipular. Já que basta darmos um $sheet->getCell(Célula)->getValue() para recuperar os dados da planilha. E para alterar esses dados, é só utilizar normalmente o $sheet->setCellValue(valor) como podemos ver no exemplo abaixo:
<?php require 'vendor/autoload.php'; //autoload do projeto use PhpOffice\PhpSpreadsheet\IOFactory; //classe responsável por ler uma planilha use PhpOffice\PhpSpreadsheet\Spreadsheet; //classe responsável pela manipulação da planilha use PhpOffice\PhpSpreadsheet\Writer\Xlsx; //classe que salvará a planilha em .xlsx $spreadsheet = IOFactory::load('spreadsheet2.xlsx'); //tornando a planilha em um objeto $sheet = $spreadsheet->getActiveSheet(); //retornando a aba ativa $sheet->setCellValue('A1', 'Nome'); //Definindo a célula A1 $sheet->setCellValue('B1', 'Nota 2'); //Definindo a célula B1 $sheet->setCellValue('D1', 'Soma'); $sheet->setCellValue('A2', 'pokemaobr'); $sheet->setCellValue('B2', 5); $sheet->setCellValue('D2', '=(sum(B2:B5))'); //Definindo a fórmula para o cálculo da média $sheet->setCellValue('A3', 'bob'); $sheet->setCellValue('B3', 7); $sheet->setCellValue('A4', 'boina'); $sheet->setCellValue('B4', 9); $sheet->setCellValue('A5', 'aris'); $sheet->setCellValue('B5', '10'); $writer = new Xlsx($spreadsheet); //Instanciando uma nova planilha $writer->save('spreadsheet3.xlsx'); //salvando a planilha na extensão definida
Então, teremos como resultado a spreadsheet3.xlsx.
Espero que tenham gostado da biblioteca. No nosso próximo artigo traremos outra biblioteca interessante para quem programa PHP. Abraços, até lá.