Метаданные листа

Источник: 4.5.0 · dd0d48d

На этой странице

Получение правил проверки данных

Каждый лист в вашем XLSX-файле может содержать набор правил проверки данных (data validation). Чтобы получить их, достаточно вызвать getDataValidations у листа

php
$excel = Excel::open($file);

$sheet = $excel->sheet();

$validations = $sheet->getDataValidations();
/*
[
  [
    'type' => 'list',
    'sqref' => 'E2:E527',
    'formula1' => '"Berlin,Cape Town,Mexico City,Moscow,Sydney,Tokyo"',
    'formula2' => null, 
  ], [
    'type' => 'decimal',
    'sqref' => 'G2:G527',
    'formula1' => '0.0',
    'formula2' => '999999.0',
  ],
]
*/

Ширины колонок

Получить ширину конкретной колонки на листе:

php
$excel = Excel::open($file);
$sheet = $excel->selectSheet('SheetName');

// Получить ширину колонки 1 (колонка 'A')
$columnWidth = $sheet->getColumnWidth(1);

echo $columnWidth; // Например: 11.85

Высоты строк

Получить высоту конкретной строки на листе:

php
$excel = Excel::open($file);
$sheet = $excel->selectSheet('SheetName');

// Получить высоту строки 1
$rowHeight = $sheet->getRowHeight(1);

echo $rowHeight; // Например: 15

Информация о закреплённых областях

Получить информацию о закреплённых областях (freeze pane) листа:

php
$excel = Excel::open($file);
$sheet = $excel->selectSheet('SheetName');

// Получить конфигурацию закреплённых областей
$freezePaneConfig = $sheet->getFreezePaneInfo();

print_r($freezePaneConfig);
/*
Пример вывода:
Array
(
    [xSplit] => 0
    [ySplit] => 1
    [topLeftCell] => 'A2'
)
*/

Информация о цвете вкладки

Получить информацию о цвете вкладки листа:

php
$excel = Excel::open($file);
$sheet = $excel->selectSheet('SheetName');

// Получить конфигурацию цвета вкладки
$tabColorConfig = $sheet->getTabColorInfo();

print_r($tabColorConfig);
/*
Пример вывода:
Array
(
    [theme] => '2'
    [tint] => '-0.499984740745262'
)
*/

Информация об объединённых ячейках

Можно использовать следующие методы:

  • Sheet::getMergedCells() -- Возвращает все объединённые диапазоны
  • Sheet::isMerged(string $cellAddress) -- Проверяет, объединена ли ячейка
  • Sheet::mergedRange(string $cellAddress) -- Возвращает диапазон объединения указанной ячейки

Например

php
if ($sheet->isMerged('B3')) {
    $range = $sheet->mergedRange('B3');
}

Гиперссылки

Лист может содержать гиперссылки на ячейках. Вызовите Sheet::getHyperlinks(), чтобы получить их — с ключами по ячейке (или диапазону), к которой они привязаны:

php
$links = $sheet->getHyperlinks();

Вы получите массив вида:

text
Array
(
    [A7] => Array
        (
            [link]     => 'https://go.servicetitan.com/'
            [location] => '/new/reports/218?DateType=0&...'
            [display]  => ''
            [tooltip]  => ''
        )
)
  • link — разрешённая внешняя цель (URL, взятый из связей листа), либо пустая строка для чисто внутренней ссылки;
  • location — местоположение внутри документа: ссылка на ячейку вида Sheet2!A1 для внутренней ссылки либо фрагмент, добавляемый к внешней цели;
  • display, tooltip — соответствующие атрибуты, либо пустая строка, если их нет.

Лист без гиперссылок возвращает пустой массив.

Подсчёт строк и колонок

Каждый лист содержит свойство dimension с диапазоном области, в которой записаны данные. Если на листе заполнена только одна ячейка, там должен быть адрес только этой ячейки вида "B2", иначе это диапазон вида "B2:E10".

Есть несколько методов, получающих данные из этого свойства:

  • dimension() -- Возвращает размерность рабочей области по умолчанию из свойств листа
  • countRows() -- Количество строк из dimension
  • countColumns() -- Количество колонок из dimension
  • minRow() -- Минимальный номер строки из свойств листа
  • maxRows() -- Максимальный номер строки из свойств листа
  • minColumn() -- Буква минимальной колонки из свойств листа
  • maxColumn() -- Буква максимальной колонки из свойств листа

Но иногда свойство dimension содержит некорректную информацию. Например, там может быть адрес только первой ячейки диапазона данных или только последней. В таких случаях можно использовать методы, которые сканируют весь лист и подсчитывают фактическое количество строк и колонок с данными на листе.

ВАЖНО: эти методы работают медленнее методов, использующих свойство dimension

  • actualDimension() -- Возвращает размерность фактической рабочей области
  • countActualRows() -- Подсчёт фактических строк на листе
  • minActualRow() -- Минимальный фактический номер строки
  • maxActualRow() -- Максимальный фактический номер строки
  • countActualColumns() -- Подсчёт фактических колонок на листе
  • minActualColumn() -- Буква минимальной фактической колонки
  • maxActualColumn() -- Буква максимальной фактической колонки

Смотрите также

FastExcelReader 4.5.0 · Поиск по текущей библиотеке и версии.

Загрузка поиска…

Не удалось загрузить поиск. Попробуйте ещё раз.

Ничего не найдено. Попробуйте другое слово или имя метода.