Оставлю тут, может кому пригодится:
Скачиваем библиотеку PHPExcel
Я положил ее в assets/lib/ там внутри уже папка Classes из скачанного архива, в сниппете будет виден путь.
Создал TV файл, назвал его xlsFile
Создал сниппет showXls, в нем присутствует отладочная информация:
<?php require_once 'assets/lib/Classes/PHPExcel/IOFactory.php'; // Подключаем библиотеку $xls = $modx->resource->getTVValue('xlsFile'); // Наш TV $objPHPExcel = PHPExcel_IOFactory::load($xls); // Скармливаем его библиотеке foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { $worksheetTitle = $worksheet->getTitle(); $highestRow = $worksheet->getHighestRow(); // Например, 10 $highestColumn = $worksheet->getHighestColumn(); // Например, 'F' $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); $nrColumns = ord($highestColumn) - 64; echo " В таблице ".$worksheetTitle." "; echo $nrColumns . ' колонок (A-' . $highestColumn . ') '; echo ' и ' . $highestRow . ' строк.'; echo ' Данные: <table border="0"><tr>'; for ($row = 1; $row <= $highestRow; ++ $row) { echo '<tr>'; for ($col = 0; $col < $highestColumnIndex; ++ $col) { $cell = $worksheet->getCellByColumnAndRow($col, $row); $val = $cell->getValue(); $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val); echo '<td>' . $val . ' (Тип ' . $dataType . ')</td>'; } echo '</tr>'; } echo '</table>'; }
И теперь в ресурсе, где надо вывести Excel и где мы загрузили в TV файлик, запускаем сниппет:
[[showXls?]]