Как считать Excel файл PHP скриптом?
Задача у меня не сложная, но что-то не получается реализовать. Может сталкивался кто, поможет?
В общем нужно считать имеющийся .xlsx файл. Т.е. нужно обработать файл, чтобы из него получился массив данных.
Нашел фреймворк PHPExcel, но не получается в нем разобраться, что-то не так делаю...
Как-то сталкивался с таким заданием. Считать файл excel гораздо проще чем создать и делается это так.
Я пользовался упомянутой вами библиотекой PHPExcel. Скачиваем последнюю версию библиотеки по этой ссылке.
Из скаченного архива нам понадобится только папка
Classes. Копируем её в наш проект. Допустим у нас есть файл обработчик запроса и "рядом" с ним мы создали папку "PHPExcel" и скопировали туда папку "Classes", тогда путь к основному файлу библиотеки (PHPExcel.php) будет такой:dirname(__FILE__) . '/PHPExcel/Classes/PHPExcel.php'Теперь давайте создадим функцию, которая будет считывать переданный файл и возвращать нам его данные в массиве:
/* * Считывает данные из любого excel файла и созадет из них массив. * $filename (строка) путь к файлу от корня сервера */ function parse_excel_file( $filename ){ // подключаем библиотеку require_once dirname(__FILE__) . '/PHPExcel/Classes/PHPExcel.php'; $result = array(); // получаем тип файла (xls, xlsx), чтобы правильно его обработать $file_type = PHPExcel_IOFactory::identify( $filename ); // создаем объект для чтения $objReader = PHPExcel_IOFactory::createReader( $file_type ); $objPHPExcel = $objReader->load( $filename ); // загружаем данные файла в объект $result = $objPHPExcel->getActiveSheet()->toArray(); // выгружаем данные из объекта в массив return $result; }На этом все!
Пример использования:
Предположим, наш файл
file.xlsxимеет путьwww/example.com/module/file.xlsxи содержит 3 столбца данных: дата, ключ, значение и 5 строк с заполненными данными. Тогда считывая файл нашей созданной функцией:Мы получим такой массив:
Тут каждый элемент массива это строка и заполненные колонки в ней.
-
П.С. Для работы библиотеки ваш хостинг должен удовлетворять следующим требованиям:
версия PHP 5.2 или выше
Включенное расширение PHP
php_zipВключенное расширение PHP
php_xmlВключенное расширение PHP
php_gd2