PHPSpreadsheet
Бібліотека PHP з відкритим вихідним кодом для файлів електронних таблиць
Читайте, записуйте, маніпулюйте та обробляйте файли Microsoft Excel і LibreOffice Calc.
PHPSpreadsheet — це бібліотека з відкритим вихідним кодом, яка включає набір класів, які дозволяють вам взаємодіяти з різними форматами файлів електронних таблиць Microsoft Excel і LibreOffice Calc і використовувати їх. PHPSpreadsheet підтримує електронні таблиці, які містять один або кілька робочих аркушів, що містять клітинки для зберігання даних різних типів, таких як числа, формули, зображення тощо.
Початок роботи з PHPSpreadsheet
Перш за все, вам потрібно мати PHP версії 7.1 або новішої для розробки за допомогою PhpSpreadsheet. Рекомендовано встановити PhpSpreadsheet у ваш проект за допомогою компонента. Відкрийте термінал у кореневому каталозі проекту та виконайте команду:
Ось команда
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 перед виконанням. Щоб підвищити продуктивність, для зберігання результату формули використовується кеш обчислень. Подібним чином кожен окремий аркуш підтримується окремим кеш-пам’яттю.