Dev (Back & Front)ARTIGO

Abrindo e editando planilhas com o PHPSpreadsheet

No seguinte artigo, o autor apresenta mais uma parte da série sobre planilhas em PHP, desta vez, demonstrando como abrir planilhas, recuperar dados e altera-los.

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á.

MBA em Engenharia de Softwares Orientado para Serviços pela Metrocamp, Campinas/SP. Bacharel em Matemática Aplicada e Computacional pela Universidade Federal Rural do Rio de Janeiro, Community Manager do iMasters. Programador PHP desde 2002. Evangelista PHPSP. Desenvolve sistemas desde batalhas Pokemon em mIRC, a robôs automatizadores de tarefas.

Ver perfil