Integrando o Framework Codeigniter 3 com o PhpSpreadSheet via composer
Olá pessoal, nesse post eu trago para vocês o passo a passo de como integrar o Codeigniter 3 com o PhpSpreadSheet via Composer de uma forma bem simples.
Como pré requisitos precisamos de:
- Baixar o codeigniter 3: https://codeigniter.com/download
- Ter xampp instalado e startado: https://www.apachefriends.org/index.html
- Ter o composer instalado: https://getcomposer.org/download/
- Ter um editor de código: https://code.visualstudio.com/
$config['composer_autoload'] = APPPATH . '../vendor/autoload.php';
Aproveitando que estamos no arquivo config.php, vamos realizar uma configuração inicial do codeigniter, então edite os parametros a seguir:
$config['index_page'] = '';
$config['base_url'] = 'http://localhost/ci-3/';
Agora vamos até o arquivo routes.php que fica dentro da pasta config/routes.php, e edite o conteúdo da variável default_controller para como está no exemplo, assim a chamada padrão do codeigniter chamará a função de gerar excel automaticamente.
$route['default_controller'] = 'welcome/gerarExcel';
Já no autoload.php dentro da pasta config do codeigniter setar o conteúdo da variável helper como no exemplo a seguir.
$autoload['helper'] = array('url');
Agora podemos ir para o controller welcome dentro da pasta controllers para poder gerar o código que vai nos permitir criar um arquivo excel;
No inicio do documento depois do parametro define, coloque os dois uses a seguir:
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
Dentro da classe welcome crie a função gerarExcel como a seguir:
$spreadsheet = new Spreadsheet();
$fileName = "matheus_code.xlsx";
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$writer->save($fileName);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="'. urlencode($fileName).'"');
$writer->save('php://output');
}
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class Welcome extends CI_Controller {
public function index()
{
$this->load->view('welcome_message');
}
public function gerarExcel(){
$spreadsheet = new Spreadsheet();
$fileName = 'matheus_code.xlsx';
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World!');
$writer = new Xlsx($spreadsheet);
$writer->save($fileName);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="' . urlencode($fileName) . '"');
$writer->save('php://output');
}
}
Comentários
Postar um comentário