PhpSpreadsheet es una biblioteca escrita en PHP puro y proporciona un conjunto de clases que permiten leer y escribir en diferentes formatos de archivo de hoja de cálculo, como Excel y LibreOffice Calc.
Formatos soportados:

Requisitos:
PHP 7.1 o posterior.
Sin usas el stack LAMP, el paquete XAMPP puede ayudarte, incluyendo la última versión de PHP para hacer pruebas en un servidor local.
Instalación:
Usando composer para instalar PhpSpreadsheet. Si no tienes instalado descargarlo desde aqui.
Ejemplo práctico:
Crea un directorio donde alojar tu proyecto local de prueba. Usa la consola de comandos para ubicarte es dicho directorio, allí descargaremos la librería.

composer require phpoffice/phpspreadsheet


Creamos un archivo llamado demo.php, y escribimos lo siguiente:

<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hola Mundo !');
$writer = new Xlsx($spreadsheet);
$writer->save('hola_mundo.xlsx');
// Redireccionamos para que descargue el archivo generado
header("Location: hola_mundo.xlsx");

Solo nos queda probar. Ir a la url de nuestro servidor local: http://localhost/phpspreadsheet/demo.php, y procede a descargar el archivo hola_mundo.xlsx

Hemos visto un ejemplo muy básico sobre escritura en hoja de cálculo, mas adelante veremos una sobre lectura de hoja de cálculo. Atentos!
Puedes consultar la documentación de la librería también.