Парсим xls (exel) на php

16.05.2013 10:20 Администратор PHP
Печать
Примерно год назад мне необходимо было релизовать на одном из сайтов клиентов загрузку и обновление информации которая бы бралась из xls файла который они загрузили. Если информация под определенным id изменилась то она изменялась и на сайте, если появлялась в эксель файле новая строк с данными то она добалвлась. В итоге должен был получится скрипт который добалвяет торги на сайт из xls файла и в последующем если торги прошли то опять же из свеже загруженного файла он пополнял информацию о победителе торгов и цене.

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

Для решения задачи я нашел Microsoft Excel Spreadsheets и успешно его использовал. Сегодня расскажу и вам как просто это все дело организоввать. Microsoft Excel Spreadsheets состоит из 2 файлов oleread.inc и reader.php.

Кидаем эти файлы в папку с вашим проектом (файлы на всякий случай я приложу).

Далее в иполняем файле необходимо пишем следующий код:

require_once ('reader.php'); // подключаем класс
$Excel = new Spreadsheet_Excel_Reader(); // создаем объект
$Excel->setOutputEncoding('utf-8'); // устанавливаем кодировку
$Excel->read('excel.xls'); // открываем файл
$line=$Excel->sheets[0]['cells'];

 Собственно и все. Переменная $line будет содержать в себе массив строк и ячеек. К примеру вот так:

echo $line[1][1];

 мы выведем на экран ячейку у которой кодината равна x=1 y=1, хотя скорее всего я ошибаюсь уже сейчас не помню, вот так выведет содержимое ячейки у которой x=1 и y=1

echo $line[0][0];

 все же это массив и разумно предпологать что он начинается с нуля.

На изобретение такого велосипеда у нас бы с вами явно ушло не меньше недели так как надо знать как строится этот самый xls файл.