Desenvolvimento

2 fev, 2018

Abrindo e editando planilhas com o PHPSpreadsheet

Publicidade

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