Skip to content

How to generate Excel using PhpSpreadsheet in CodeIgniter

Last updated on November 18, 2022

In this post, I would like to show using of PhpSpreadsheet library within your CodeIgniter 3 project. PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files.

Similar Posts
CodeIgniter 4 – Export data to excel in CodeIgniter using PhpSpreadsheet
How to use PHPExcel with CodeIgniter?
How to generate excel from the array using PHPExcel

How to generate Excel using PhpSpreadsheet in CodeIgniter

Here are the steps to generate Excel in the CodeIgniter 3 application with PhpSpreadsheet:

Step 1: Download and install CodeIgniter.

Step 2: Run the below composer command to download phpspreadsheet the library from your project folder. It will create a new folder called “vendor” and it will download phpoffice/phpspreadsheet the library into it.

$ composer require phpoffice/phpspreadsheet

Here is my directory structure after installing phpoffice/phpspreadsheet

Step 3: Open application/config/config.php file and set your vendor directory path

 $config['composer_autoload'] = 'vendor/autoload.php';

Step 4: Use phpspreadsheet the library inside your controller, here is the sample:

<?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()
	{       
		$spreadsheet = new Spreadsheet();
		$sheet = $spreadsheet->getActiveSheet();
		$sheet->setCellValue('A1', 'Hello World !');
		
		$writer = new Xlsx($spreadsheet);

		$filename = 'name-of-the-generated-file.xlsx';

		$writer->save($filename); // will create and save the file in the root of the project

	}

	public function download()
	{
		$spreadsheet = new Spreadsheet();
		$sheet = $spreadsheet->getActiveSheet();
		$sheet->setCellValue('A1', 'Hello World !');
		
		$writer = new Xlsx($spreadsheet);

		$filename = 'name-of-the-generated-file';

		header('Content-Type: application/vnd.ms-excel');
		header('Content-Disposition: attachment;filename="'. $filename .'.xlsx"'); 
		header('Cache-Control: max-age=0');
		
		$writer->save('php://output'); // download file 

	}
}

For more information, here is the official documentation page of – phpspreadsheet documentation

5 1 vote
Article Rating
Subscribe
Notify of
guest

15 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments