it-blog.club
PHP Excel из файла в код

PHP Excel из файла в код

В данной статье, я бы хотел рассказать, как мы можем получить данные из Эксель файла в код. Например это может пригодиться, если ваш клиент хранит базу товаров в таблице. Разумеется это не единственный случай. Так же однажды от клиента вам может придти огромный список адресов, на которые необходимо поставить редиректы. И вместо того, чтобы тратить кучу времени на ручную обработку, вы можете воспользоваться PHP библиотекой PHPExcel.

Данной библиотеке я посвящу как минимум 2 статьи. Получение данных из файла и занесение в файл.

Так же очень важно! PHPExel работает с xlsx и, как заявлено, с xls. Но Сами попробуйте запустить обработку xls... в общем это будет изощрённый способ положить сервер, так как обработка xls в мгновение съесть всю доступную память и уйдёт в себя. По этому мы работаем только с xlsx!

Приступим:

Для начала вам необходимо скачать саму библиотеку. Положить к себе в проект, туда куда это требуется в зависимости от вашей CMS или Фраемворка. Для примера я положу прямо в корень. Чтобы всем было ясно что и как.

Далее создаём новый php файл. Например parse.php. Для примера опять же в корне проекта.

Подключаем нашу библиотеку:


require_once($_SERVER['DOCUMENT_ROOT'] . '/phpexel/PHPExcel.php');

Далее нужно взять exel файл. Как я уже писал выше, формата xlsx. Ну например catalog.xlsx. Допустим там у нас самый простой каталог. Первый столбец Название товара, второй Цена и третий пускай будет описание.

1 строка = 1 товар

И содержимое данного файла нам нужно загнуть в БД.

Подключив библиотеку, следующей строкой я советую сначала проверять наличие файла.


require_once($_SERVER['DOCUMENT_ROOT'] . '/phpexel/PHPExcel.php'); // Подключаем библиотеку

$excelFile = $_SERVER['DOCUMENT_ROOT'] . '/catalog.xlsx'; // ссылка на наш файл
if(!file_exists($excelFile)) {
return false;//Если файла нет, то просто отменяем всё
}

Отлично. Теперь у вас точно не будет ничего работать... Без файла разумеется. Идём дальше.

Обращу ваше внимание на то, что файл считывается слева на право, сверху вниз: a1 b1 c1,a2 b2 c2

Ну собственно наш код:


require_once($_SERVER['DOCUMENT_ROOT'] . '/phpexel/PHPExcel.php'); // Подключаем библиотеку

$excelFile = $_SERVER['DOCUMENT_ROOT'] . '/catalog.xlsx'; // ссылка на наш файл
if(!file_exists($excelFile)) {
return false;//Если файла нет, то просто отменяем всё

$arItems = array(); //Создаём массив кода будет класть наши прочитанные строки
$fileType = \PHPExcel_IOFactory::identify($exсelFile);
$objReader = \PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($exelFile);
$arItems = $objPHPExcel->getActiveSheet()->toArray();//Преобразовываем наш excel в массив
//1 строка = 1 ключ, каждая ячейка = новый вложенный ключ уже созданного

//Проходим по начитанному массиву
foreach ($arItems as $item)
{

//Набираем элемент каталога
$arElem = array(
'NAME'=>$item[0],
'PRICE'=>$item[1],
'DESC'=>$item[2],
);
//Ну и выведем каждый элемент в цикле.
var_dump($arElem);
}

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

Собственно на этом всё. При помощи приведённых скриптов. Вы сможете без проблем получить содержимое эксель файла при помощи php


it-blog.club 809
Автор: Ярослав Хмель


Если Вам понравилась статья, то можете поддержать блог переведя N сумму на кофе авторам или оплату хостинга!
В любом случае спасибо! А так же не забывайте про группу в ВК
ПОИСК ПО САЙТУ
Поддержать