Full Stack LAMP - MEAN Developer, Python developer. Certified Azure Developer. Freelance programmer/consultant/trainer.

How to generate Excel using PhpSpreadsheet in CodeIgniter

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:

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

I hope you like this Post, Please feel free to comment below, your suggestion and problems if you face - we are here to solve your problems.

5 1 vote
Article Rating
Notify of

Most Voted
Newest Oldest
Inline Feedbacks
View all comments