ArrayExcelBuilder
The extension creates an Excel file from the data array.
Install / Use
/learn @KebaCorp/ArrayExcelBuilderREADME
The component CREATES an Excel file from the data array or READS from Excel file to array.
Based on PHPOffice/PhpSpreadsheet
For license information check the LICENSE-file.
Requirements:
- PHP 5.6 and higher.
- PHP 7.4 is supported since ArrayExcelBuilder v4.0.1
Installation:
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist kebacorp/arrayexcelbuilder
or add
"kebacorp/arrayexcelbuilder": "*"
to the require section of your composer.json.
Usage:
"Hello world!" example
<?php
use KebaCorp\ArrayExcelBuilder\ArrayExcelBuilder;
// Array data
$data = [
// Sheet 1
[
// Sheet options
'sheetName' => 'Hello world page',
'data' => [
// Column 1
[
// Row 1
[
// Cell options
'value' => 'Hello world!',
],
// Row n...
],
// Column n...
],
],
// Sheet n...
];
// Create excel file from array
$arrayExcelBuilder = new ArrayExcelBuilder($data);
$arrayExcelBuilder->save();
?>
Matrix data example
<?php
use KebaCorp\ArrayExcelBuilder\ArrayExcelBuilder;
// Array data
$data = [
// Sheet 1
[
// Sheet options
'sheetName' => 'Hello world page',
'data' => [
// Column 1
[
'Hello world!', // Row 1
true, // Row 2
100500, // Row 3
'Other value', // Row 4
[ // Row 4
'value' => 'I can configure the cell in more detail',
// Other cell options...
],
// Row n...
],
// Column 2
[
'Hello world!', // Row 1
true, // Row 2
100500, // Row 3
10 => 'Other value', // Row 9
// Row n...
],
// Column n...
],
],
// Sheet n...
];
// Create excel file from array
$arrayExcelBuilder = new ArrayExcelBuilder($data);
$arrayExcelBuilder->save();
?>
Sheet parameter "isRowDirection" example
<?php
use KebaCorp\ArrayExcelBuilder\ArrayExcelBuilder;
// Array data
$data = [
// Sheet 1
[
// Sheet options
'sheetName' => 'Hello world page',
'isRowDirection' => true,
'data' => [
// Row 1
[
'Hello world!', // Column 1
true, // Column 2
100500, // Column 3
'Other value', // Column 4
// Column n...
],
// Row 2
[
'Hello world!', // Column 1
true, // Column 2
100500, // Column 3
'Other value', // Column 4
// Column n...
],
// Row n...
],
],
// Sheet n...
];
// Global cell params
$globalParams = [];
// Create excel file from array
$arrayExcelBuilder = new ArrayExcelBuilder($data, $globalParams);
$arrayExcelBuilder->save();
?>
Рекомендации:
-
Рекомендуется использовать глобальные параметры, вместо одинаковых параметров у каждой ячейки, если необходимо настроить все или большинство ячеек одинаково.
-
Каждый параметр увеличивает время создания файла. Поэтому один параметр "styleArray" (массив с настройками стиля ячейки) будет исполняться существенно быстрее, чем аналогичные параметры (borderBottom, bold, fontColor, fontSize и т. д.) по отдельности.
-
Не рекомендуется использовать в качестве ключей массивов колонок и строк не числа. Позиция следующей ячейки в таком случае может сбиться!
Полезно знать:
- Позиция ячейки относительно ключа массива:
Если массив с данными будет ассоциативным, и ключи будут в виде цифр, то ячейка будет расположена относительно ключа. Отсчет начинается с нуля.
Например:
<?php
$data = [
1 => [
8 => ['value' => 'Hello, World!']
]
];
В данном примере текст "Hello, World!" будет расположен в ячейке "B9".
Params:
Sheet options
| Name | Type | Default | Description | | -------- |:----:| ------- | ----------- | | autoSize | bool | false | Авторазмер ячеек. Если у ячейки задана ширина, то "autoSize" будет проигнорирован. | | charts | array | none | Массив данных для создания графиков. Подробнее в Charts. | | data | array | none | Массив данных. Обязательный параметр. | | freezeCell | string | none | Зафиксировать ячейки по координату. Например 'B2' - зафиксирует первую строку и первый столбец. | | isRowDirection | bool | false | Заполнять данные построчно, либо по колонкам. По умолчанию заполнение по колонкам. | | sheetName | string | auto generate | Заголовок страницы. Если не передавать данный параметр, либо передать пустую строку, то название сгенерируется автоматически. | | sheetNameInvalidCharactersReplacement | string | ' ' | Заменитель недопустимых символов в заголовке страницы. | | showGridLines | bool | true | Отобразить сетку. |
Global cell options
| Name | Type | Default | Description | | -------- |:----:| ------- | ----------- | | allBorderBottom | string | 'none' | Рамка у всех ячеек снизу: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | allBorderRight | string | 'none' | Рамка у всех ячеек справа: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | allBorderLeft | string | 'none' | Рамка у всех ячеек слева: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | allBorderTop | string | 'none' | Рамка у всех ячеек сверху: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | allBorderBottomColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "allBorderBottom". Цвет заливки рамки у всех ячеек снизу. HEX без #. Например: 'FFFFFF'. | | allBorderRightColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "allBorderRight". Цвет заливки рамки у всех ячеек справа. HEX без #. Например: 'FFFFFF'. | | allBorderLeftColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "allBorderLeft". Цвет заливки рамки у всех ячеек слева. HEX без #. Например: 'FFFFFF'. | | allBorderTopColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "allBorderTop". Цвет заливки рамки у всех ячеек сверху. HEX без #. Например: 'FFFFFF'. | | bold | bool | false | Жирный шрифт. | | borderBottom | string | 'none' | Рамка у ячейки снизу: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | borderRight | string | 'none' | Рамка у ячейки справа: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | borderLeft | string | 'none' | Рамка у ячейки слева: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | borderTop | string | 'none' | Рамка у ячейки сверху: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | borderVertical | string | 'none' | Вертикальная рамка у ячейки: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | borderHorizontal | string | 'none' | Горизонтальная рамка у ячейки: none, dashDot, dashDotDot, dashed, dotted, double, hair, medium, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot, thick, thin. | | borderBottomColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "borderBottom". Цвет заливки рамки у ячейки снизу. HEX без #. Например: 'FFFFFF'. | | borderRightColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "borderRight". Цвет заливки рамки у ячейки справа. HEX без #. Например: 'FFFFFF'. | | borderLeftColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "borderLeft". Цвет заливки рамки у ячейки слева. HEX без #. Например: 'FFFFFF'. | | borderTopColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "borderTop". Цвет заливки рамки у ячейки сверху. HEX без #. Например: 'FFFFFF'. | | borderVerticalColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "borderVertical". Цвет заливки вертикальной рамки у ячейки. HEX без #. Например: 'FFFFFF'. | | borderHorizontalColor | HEX color string | '000000' | ВНИМАНИЕ! Необходимо установить "borderHorizontal". Цвет заливки горизонтальной рамки у ячейки. HEX без #. Например: 'FFFFFF'. | | callback | function | null | Функция обратного вызова. Вызывае
Related Skills
node-connect
341.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.6kCommit, push, and open a PR
