В статье представлены различные PHP-расширения для чтения файлов XLS, XLSX, описаны их плюсы и минусы, а также примеры чтения.
https://github.com/PHPOffice/PHPExcel
Огромная библиотека читает и формирует фалы xls, xlsx, csv.
- Для файлов xlsx потребует расширение ZipArchive.
- Потребляет много памяти.
Пример чтения файла в массив:
https://www.phpclasses.org/package/6279-PHP-Parse-and-retrieve-data-from-Excel-XLS-files.html
simple-xlsx.zip (2017-09-25)
Читает только файлы xlsx.
- Менее прожорлив к памяти.
- Не всегда может прочитать файл, например файл сформированный PHPExcel.
https://sourceforge.net/projects/phpexcelreader/
phpExcelReader.zip (исправленный)
- Прочтёт только XLS файлы.
- Есть проблемы с кодировкой.
require_once __DIR__ . '/phpExcelReader/Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('UTF-8');
// Файл xls
$data->read(__DIR__ . '/test.xls');
// Первый лист
$sheet = $data->sheets[0]['cells'];
foreach ($sheet as $row) {
print_r($row);
}
https://code.google.com/archive/p/php-excel-reader/
php-excel-reader.zip (2.21)
Форк библиотеки «PHP Excel Reader» с SourceForge предназначенный для вывода таблицы в HTML.
Например файл example.xls выведет следующим образом:
<style>
table.excel {
border: 1px solid #CCCCCC;
border-collapse:collapse;
font-family:sans-serif;
font-size:12px;
margin: 0 auto;
}
table.excel thead th, table.excel tbody th {
border: 1px solid #CCCCCC;
text-align: center;
vertical-align:bottom;
}
table.excel tbody th {
text-align:center;
width:20px;
}
table.excel tbody td {
vertical-align:bottom;
}
table.excel tbody td {
padding: 0 3px;
border: 1px solid #EEEEEE;
}
</style>
<?php
require_once __DIR__ . '/php-excel-reader/excel_reader2.php';
$data = new Spreadsheet_Excel_Reader(__DIR__ . '/example.xls');
echo $data->dump(true, true);
?>
Также у библиотеки есть методы для получения формата и содержания каждой ячейки по отдельности.
https://github.com/nuovo/spreadsheet-reader
spreadsheet-reader.zip
Читает файлы XLSX, XLS, CSV и OpenOffice ods. Для чтения XLS используется предыдущая библиотека php-excel-reader.
require_once __DIR__ . '/spreadsheet-reader/php-excel-reader/excel_reader2.php';
require_once __DIR__ . '/spreadsheet-reader/SpreadsheetReader.php';
// Файл xlsx, xls, csv, ods.
$Reader = new SpreadsheetReader(__DIR__ . '/test.xlsx');
// Номер листа.
$Reader -> ChangeSheet(0);
foreach ($Reader as $Row) {
print_r($Row);
}
https://code.google.com/archive/p/php-spreadsheetreader/
SpreadsheetReader.rar
Откроет только файлы в формате XML Excel 2004.
там есть ещё нулевой