top of page


Public·5 Players
Muecas Campbell
Muecas Campbell

PhpSpreadsheet IOFactory: A Powerful and Flexible Tool for Spreadsheet Processing in PHP

How to Download Spreadsheet Files Using PhpSpreadsheet IOFactory

If you are working with spreadsheet files in PHP, you might have heard of PhpSpreadsheet, a library that allows you to read and write various spreadsheet file formats such as Excel and LibreOffice Calc. In this article, we will show you how to use one of its features, the IOFactory class, to download spreadsheet files directly to the browser without saving them on the server.

What is PhpSpreadsheet?

A brief introduction to the library and its features

PhpSpreadsheet is a library written in pure PHP that offers a set of classes that allow you to manipulate spreadsheet files programmatically. It is based on the PHPExcel project, which is no longer maintained. Some of the features of PhpSpreadsheet are:

phpoffice phpspreadsheet iofactory download

  • Reading and writing spreadsheet files in various formats, such as XLSX, XLS, ODS, CSV, HTML, and PDF.

  • Creating and modifying worksheets, cells, ranges, formulas, styles, charts, images, comments, and more.

  • Performing calculations and validations on spreadsheet data.

  • Supporting advanced features such as conditional formatting, data filtering, pivot tables, macros, encryption, and digital signatures.

The supported file formats and how to install it

PhpSpreadsheet supports reading and writing the following file formats:





















Yes (with additional libraries)




Sylk (SLK)


Yes (with additional libraries)

XML Spreadsheet 2003 (XML)


No (with additional libraries)

Biff 5/8 (BIFF5/BIFF8)

No (with additional libraries)

No (with additional libraries)

Biff 2/3/4 (BIFF2/BIFF3/BIFF4)

No (with additional libraries)

No (with additional libraries)

To install PhpSpreadsheet, you need to have PHP version 7.2 or higher and Composer, a dependency manager for PHP. You can use the following command to install PhpSpreadsheet via Composer:

composer require phpoffice/phpspreadsheet

This will download the latest version of PhpSpreadsheet and its dependencies to your project folder.

What is IOFactory?

A class that provides a factory method for creating readers and writers

IOFactory is a class that belongs to the PhpOffice\PhpSpreadsheet\IOFactory namespace. It provides a static method called createWriter() that takes a spreadsheet object and a file format as parameters and returns a writer object that can save the spreadsheet to that format. Similarly, it provides another static method called createReader() that takes a file format as a parameter and returns a reader object that can load a spreadsheet from that format.

The advantages of using IOFactory over specific classes

One of the advantages of using IOFactory is that you don't need to know the exact class name of the reader or writer for each file format. For example, if you want to save a spreadsheet as an XLSX file, you don't need to use the Xlsx class directly. You can just use IOFactory::createWriter($spreadsheet, 'Xlsx') and it will return an instance of the Xlsx class for you. This makes your code more flexible and easier to maintain.

Another advantage of using IOFactory is that it can automatically detect the file format based on the file extension or the file content. For example, if you want to load a spreadsheet from a file, you don't need to specify the file format. You can just use IOFactory::load($filename) and it will return a spreadsheet object with the data from the file. This makes your code more robust and user-friendly.

phpspreadsheet iofactory createwriter example

phpspreadsheet iofactory load csv

phpspreadsheet iofactory registerwriter pdf

phpspreadsheet iofactory identify filetype

phpspreadsheet iofactory create reader from file

phpspreadsheet iofactory save to browser

phpspreadsheet iofactory load multiple files

phpspreadsheet iofactory write to string

phpspreadsheet iofactory load xlsx

phpspreadsheet iofactory createwriter zip

phpspreadsheet iofactory load from url

phpspreadsheet iofactory write to stream

phpspreadsheet iofactory load ods

phpspreadsheet iofactory createwriter html

phpspreadsheet iofactory load from memory

phpspreadsheet iofactory write to temp file

phpspreadsheet iofactory load xls

phpspreadsheet iofactory createwriter csv

phpspreadsheet iofactory load from string

phpspreadsheet iofactory write to response

phpspreadsheet iofactory load xml

phpspreadsheet iofactory createwriter xlsx

phpspreadsheet iofactory load from database

phospreasheet iofactory write to s3

phospreasheet iofactory load gnumeric

phpoffice phpspreadsheet download composer

phpoffice phpspreadsheet download github

phpoffice phpspreadsheet download pdf

phpoffice phpspreadsheet download zip

phpoffice phpspreadsheet download html

phpoffice phpspreadsheet download csv

phpoffice phpspreadsheet download xlsx

phpoffice phospreasheet download ods

phpoffice phospreasheet download xls

phpoffice phospreasheet download xml

phpoffice phospreasheet download docx

phpoffice phospreasheet download png

phpoffice phospreasheet download jpg

phpoffice phospreasheet download svg

phpoffice phospreasheet download chart

phpoffice spreadsheet tutorial pdf download

phpoffice spreadsheet documentation download

phpoffice spreadsheet examples download

phpoffice spreadsheet templates download

phpoffice spreadsheet reader download

phpoffice spreadsheet writer download

phpoffice spreadsheet style download

phpoffice spreadsheet formula download

phpoffice spreadsheet cell download

How to Download Spreadsheet Files Using IOFactory?

The steps to create a spreadsheet object and populate it with data

To download spreadsheet files using IOFactory, you first need to create a spreadsheet object and populate it with some data. You can use the Spreadsheet class from the PhpOffice\PhpSpreadsheet\Spreadsheet namespace to create a new spreadsheet object. You can then use the methods and properties of the Spreadsheet class and its related classes, such as Worksheet, Cell, Style, etc., to manipulate the spreadsheet data and appearance.

For example, you can use the following code to create a simple spreadsheet with some sample data:

// Create a new spreadsheet object $spreadsheet = new Spreadsheet(); // Get the active worksheet $worksheet = $spreadsheet->getActiveSheet(); // Set the worksheet title $worksheet->setTitle('Sample Data'); // Set some cell values $worksheet->setCellValue('A1', 'Name'); $worksheet->setCellValue('B1', 'Age'); $worksheet->setCellValue('C1', 'Gender'); $worksheet->setCellValue('A2', 'Alice'); $worksheet->setCellValue('B2', '25'); $worksheet->setCellValue('C2', 'Female'); $worksheet->setCellValue('A3', 'Bob'); $worksheet->setCellValue('B3', '30'); $worksheet->setCellValue('C3', 'Male'); // Set some cell styles $worksheet->getStyle('A1:C1')->getFont()->setBold(true); $worksheet->getStyle('A1:C1')->getAlignment()->setHorizontal('center'); $worksheet->getStyle('A2:C3')->getAlignment()->setHorizontal('left');

The code snippet to set the headers and output the file to the browser

Once you have created and populated your spreadsheet object, you can use IOFactory::createWriter() to create a writer object for your desired file format. You can then use the save() method of the writer object to output the file to the browser. However, before doing that, you need to set some headers to tell the browser that you are sending a file and what its name and type are. You also need to disable any output buffering and clean any previous output.

For example, you can use the following code to download your spreadsheet as an XLSX file:

// Create a writer object for XLSX format $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); // Set the headers header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="sample.xlsx"'); header('Cache-Control: max-age=0'); // Disable output buffering if (ob_get_level()) ob_end_clean(); // Output the file to the browser $ writer->save('php://output');

The optional parameters and settings for customizing the output

Depending on the file format and your requirements, you can also use some optional parameters and settings to customize the output of your spreadsheet file. For example, you can use the following options:

  • If you want to download your spreadsheet as a CSV file, you can use the setDelimiter(), setEnclosure(), and setLineEnding() methods of the Csv class to specify the delimiter, enclosure, and line ending characters for your CSV file.

  • If you want to download your spreadsheet as a PDF file, you can use the setFont() method of the Pdf class to specify the font name for your PDF file. You can also use the setPaperSize() and setOrientation() methods of the Worksheet\PageSetup class to specify the paper size and orientation for your PDF file.

If you want


This is the team where young players will polish their skill...
  • Instagram
  • Facebook
  • Twitter
  • YouTube
bottom of page