PHPSpreadsheet
Библиотека PHP с открытым исходным кодом для файлов электронных таблиц
Чтение, запись, манипулирование и обработка файлов Microsoft Excel и LibreOffice Calc.
PHPSpreadsheet — это библиотека с открытым исходным кодом, которая включает в себя набор классов, позволяющих вам взаимодействовать и использовать различные форматы файлов электронных таблиц Microsoft Excel и LibreOffice Calc. PHPSpreadsheet поддерживает электронные таблицы, которые содержат один или несколько рабочих листов, содержащих ячейки для хранения данных различных типов, таких как числа, формулы, изображения и т. д.
Начало работы с PHPSpreadsheet
Прежде всего, вам нужно иметь PHP версии 7.1 или новее для разработки с использованием PhpSpreadsheet. Рекомендуемый способ установки PhpSpreadsheet в ваш проект — использовать composer. Откройте терминал в корневом каталоге вашего проекта и выполните команду:
Вот команда
composer require phpoffice/phpspreadsheet
Composer предлагает удобный установщик, который можно запустить прямо из командной строки. Вы можете загрузить этот файл или просмотреть его на GitHub. Есть два способа установки. Композитор. Установите его локально как часть вашего проекта или глобально как общесистемный исполняемый файл.
Работа с ячейками электронной таблицы
PHPSpreadsheet позволяет получить доступ к ячейке и установить ее значение по координатам. Вы также можете создать новую ячейку и настроить в ней формулу. Вы также можете настроить ячейку для заполнения различными типами данных, такими как дата, время и число с ведущими нулями. PHPSpreadsheet также позволяет вам устанавливать диапазон ячеек из массива, а также перебирать ячейки с помощью итераторов или индексов. Вы также можете использовать связыватели значений для удобного ввода данных.
Создайте новый XLSX — PHP
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// Create a new Spreasheet
$spreadsheet = new Spreadsheet();
// Get active sheet
$sheet = $spreadsheet->getActiveSheet();
// Set cell value
$sheet->setCellValue('A1', 'File Format Developer Guide !');
// Save in Xlsx format
$writer = new Xlsx($spreadsheet);
$writer->save('FileFormat.xlsx');
Создание и применение автофильтров
Используя PHPSpreadsheet, вы можете применять диапазоны автофильтра, чтобы отфильтровывать и отображать только те строки, которые соответствуют критериям, которые вы определили в автофильтре. Вы можете применять фильтры более чем к одному столбцу в качестве добавок.
PHPSpreadsheet позволяет установить область автофильтра на листе. Вы можете создавать, читать и писать выражения автофильтра. Кроме того, доступны различные типы фильтров, такие как простые фильтры, соответствующие пробелы, фильтры DateGroup, настраиваемые фильтры, динамические фильтры и фильтры первой десятки.
Применить автоматический фильтр в XLSX — PHP
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// Load existing file without filters
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('withoutFilter.xlsx');
// Select active worksheet
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getActiveSheet()->setAutoFilter($spreadsheet->getActiveSheet()->calculateWorksheetDimension());
// Set active filters
$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter();
// Filter the Country column on a filter value of Germany
$autoFilter->getColumn('C')
->setFilterType(Column::AUTOFILTER_FILTERTYPE_FILTER)
->createRule()
->setRule(
Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
'Germany'
);
// Save file
$writer = new Xlsx($spreadsheet);
$writer->save('Filter.xlsx');
Механизм расчета формулы
Чтобы выполнять вычисления от базового до продвинутого уровня в ваших бизнес-таблицах, вы можете легко вызвать механизм расчета формул PHPSpreadsheet, и он позаботится обо всем остальном.
Парсер формул PHPSpreadsheet может автоматически корректировать формулу во время вставки/удаления строк/столбцов. Формула Microsoft Excel преобразуется в код PHP перед выполнением. Для повышения производительности для хранения результата формулы используется кэш вычислений. Точно так же каждый отдельный рабочий лист поддерживается отдельным кешем.