Чтение Excel файлов PHP скриптом
Чтение Excel файлов PHP скриптом

Очень часто при разработке клиентских сайтов появляется необходимость читать php скриптом excel файлы. Например чтобы импортировать свежие прайсы. Ничего сложного в этом нет, если знать каким фреймворком для этого и пользоваться и как. Собственно в этой статье я опишу и покажу на примере как считать екселевский файл пхп скриптом.

Первым делом нам потребуется фреймворк, использовать мы будем PHPExcel (обращайте внимания на требования). После скачивания просто копируем содержимое папки Classes в корень сайта.

Создадим функцию, которая будет считывать excel файл и вовзращать массив с данными.

function readExelFile($filepath){
require_once «PHPExcel.php»; //подключаем наш фреймворк

$ar=array(); / инициализируем массив

$inputFileType = PHPExcel_IOFactory::identify($filepath);  // узнаем тип файла, excel может хранить файлы в разных форматах, xls, xlsx и другие
$objReader = PHPExcel_IOFactory::createReader($inputFileType); // создаем объект для чтения файла
$objPHPExcel = $objReader->load($filepath); // загружаем данные файла в объект
$ar = $objPHPExcel->getActiveSheet()->toArray(); // выгружаем данные из объекта в массив

return $ar; //возвращаем массив
}

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

Пример считывания  и вывода данных excel файла, с тремя столбцами: ФИО, Город, Год

$ar=readExelFile($file_path_excel);

foreach($ar as $ar_colls){
$fio = $ar_colls[0];
$city = $ar_colls[1];
$year = $ar_colls[2];

echo «$fio — $city — $year<br />»;
}

Вот собственно и всё, проще некуда. Считать excel файл легко, а вот создать его и выдать пользователю намного сложнее, но об этом я напишу в следующей статье.

Похожие записи

Комментариев (7).

  1. Andrew

    Thank you!

  2. Max

    А как быть если в ячейках екселя встречаются формулы и пр.?
    использовать get_value циклом?

  3. Роман

    Спасибо! А можно сделать, чтобы этот скрипт работал локально на компьютере? (То есть разместив его в файлике php и запустив в браузере)

  4. DanisimO

    Только если на компьюетере установлен Апач или любой другой вэб-сервер

  5. shalx

    на компе c php devel studio будет работать ?

  6. Дмитрий

    Сталкивались с проблемой читавания кирилицы? Краказябры вместо нее возникают?

  7. uncleMaster

    iconv в помощь=)

Ваш комментарий

Я не робот