Как получить массив групп товаров при обработке файла excel

203
06 мая 2018, 19:06

Подскажите как можно получить массив сгруппированных товаров из файла excel.

Я обрабатываю файл, но разбиения на группы нет, выдает просто по порядку все строки.

$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
$reader->setReadDataOnly(TRUE);
$spreadsheet = $reader->load("bulat_price.xlsx");
$worksheet = $spreadsheet->getActiveSheet();
$worksheet->toArray();
Answer 1

Нашел решение, как получить уровень вложенности или многоуровневую группировку строк. Использовал PHPExcel т.к. подходит для старых версий PHP. PhpSpreadsheet идет от версии PHP 5.6.

$spreadsheet = PHPExcel_IOFactory::load($file); // Загружаем файл
$objWorksheet = $spreadsheet->getActiveSheet();
$worksheet = $spreadsheet->setActiveSheetIndex(0); // Выбираем первый лист
$i = 0;
$arrLevel = [];
foreach ($worksheet->getRowDimensions() as $rowDimension) {
    $i++;
    $arrLevel[$i]['level'] = $rowDimension->getOutlineLevel(); // Определяем уровень вложенности
}
$highestColumn = $worksheet->getHighestColumn(); // e.g 'F'
foreach ($objWorksheet->getRowIterator() as $row) {    
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(true);
    foreach ($cellIterator as $cell) {
        $arrLevel[$row->getRowIndex()]["excel"][$cell->getColumn()] = $cell->getValue(); // Объединяем глубину вложенности и данные из столбцов и строк
    }
}
var_dump($arrLevel);

Получаем:

READ ALSO
Эффект вздутия картинки [требует правки]

Эффект вздутия картинки [требует правки]

Есть ли какой-либо способ сделать эффект вздутия картинки (bloat effect)? Не обязательно из центра

172
Шаблоны для вывода HTML - что лучше PHP или JS шаблонизаторы

Шаблоны для вывода HTML - что лучше PHP или JS шаблонизаторы

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

225
Как выполнить вложенный запрос

Как выполнить вложенный запрос

Есть две таблицыПервая Calendar содержит 3 столбца: id помещения, время и имя пользователя

203
Хранение меняющихся данных в WordPress

Хранение меняющихся данных в WordPress

Сайт работает на WordPressНеобходимо разработать функционал, который позволил бы бронировать услугу

197