Рассмотрим, как редактировать xlsx файлы на php. Для работы с excel таблицами и документами подобного формата используем библиотеку PhpSpreadsheet.
Ранее помогала библитека PHPExcel, теперь она считается устаревшей. И PHPExcel заменила библиотека PhpSpreadsheet, которая подобна в использовании. В PhpSpreadsheet был переписан код, для возможности дальнейшего развития и добавлена поддержка новых форматов электронных таблиц.
Для начала подключим библиотеку PhpSpreadsheet с помощью автозагрузки классов. Пример кода написан для работы с таблицами xlsx формата. Для других форматов будет что-то подобное. Если нужно более подробно вникнуть в тему, то пожалуйста — официальная документация. Приступим.
Будут использоваться 2 основные переменные: spreadsheet — данные книги, worksheet — данные листа.
Открыть xlsx на php
// Читаем из файла
$reader = IOFactory::createReaderForFile($file_in);
// Загружаем данные в переменную
$spreadsheet = $reader->load('input.xlsx');
Как изменить данные таблицы
$page_number - номер листа (первый лист это ноль)
// Выбираем лист
$worksheet = $spreadsheet->setActiveSheetIndex($page_number);
// Выбираем ячейку
$excel_cell = $worksheet->getCell($cell);
// Заносим данные в ячейку с указанием их типа
$excel_cell->setValueExplicit($value, DataType::TYPE_STRING);
Сохранение данных в xlsx файл
// Подготавливаем к сохранению
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
// Сохраняем в файл
$writer->save('output.xlsx');
И ссылка на готовый код, как я использовал библиотеку PhpSpreadsheet. Пример заполнения патента для ип. Может кому-то пригодится.