X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Сохранить Exel файл, PHP, PHPExcel
andreykashops
andreykashops
Topic Starter сообщение 17.10.2014, 1:26; Ответить: andreykashops
Сообщение #1


WordPress is my Life..
******

Группа: Active User
Сообщений: 1426
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 633 раза
Репутация:   139  


День добрый!

Стоит у меня задача сделать экспорт товаров с магазина в эксель файлик. Использую PHPExcel, вроде все правильно сделал, построил таблицу, но файл не сохранается(либо сохраняется, но я без понятия куда)...
Код:
Развернуть/Свернуть
Код
    $site = $_SERVER['HTTP_HOST'];
    $filename = 'dump'.date("dmY").'.xslx';
    
    // Создаем массив контента эксель
    $i = 1;
    $exel = array();
    foreach($post_arr as $post){
        $post = (object)$post;
        
        $exel[$i][0] = $post->ID;
        $exel[$i][1] = $post->title;
        $exel[$i][2] = $post->cat;
        $exel[$i][6] = $post->content;
        
        foreach($post->items as $item){
            $i++;
            $item = (object)$item;
            $exel[$i][1] = $item->title;
            $exel[$i][2] = $item->year;
            $exel[$i][3] = $item->numbers;
            $exel[$i][4] = $item->price;
            $exel[$i][5] = $item->src_url;
        }
        $i++;
    }
    
    
    // Создаем файл экселя
    $objPHPExcel = new PHPExcel();
    // устанавливаем метаданные
    $objPHPExcel->getProperties()->setCreator("PHP")
                    ->setLastModifiedBy("andreykashops")
                    ->setTitle("Экспорт товаров с $site, категория {$current_cat_info->name}")
                    ->setSubject("Экспорт товаров с $site, категория {$current_cat_info->name}")
                    ->setDescription("Экспорт товаров с $site, категория {$current_cat_info->name}")
                    ->setKeywords("экспорт товары $site {$current_cat_info->name}")
                    ->setCategory("Товары $site");
    $objPHPExcel->getActiveSheet()->setTitle('Товары');
    
    foreach($exel as $column => $exel_rows){
    
        foreach($exel_rows as $row => $value){
            $objPHPExcel->setActiveSheetIndex(0)
                        ->setCellValueByColumnAndRow($column, $row, $value);
        }
    }
    
    // Сохраняем файл
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save($filename);


Как правильно сохранять этот файл?

PS Первый раз работаю с PHPExcel, не пинайте сильно


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sanasol
Sanasol
сообщение 17.10.2014, 2:21; Ответить: Sanasol
Сообщение #2


Участник
***

Группа: User
Сообщений: 111
Регистрация: 9.7.2013
Из: Санкт-Петербург
Поблагодарили: 47 раз
Репутация:   6  


Импортируй в csv а там уже делай что хочешь. Гораздо проще :)


У меня работает https://gist.github.com/S-anasol/ad5c13ee74d5678ba1be






Сообщение отредактировал Sanasol - 17.10.2014, 2:35


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
BeerLoga
BeerLoga
сообщение 17.10.2014, 9:21; Ответить: BeerLoga
Сообщение #3


Частый гость
**

Группа: User
Сообщений: 85
Регистрация: 23.8.2014
Поблагодарили: 14 раз
Репутация:   4  


С кодом впринципе все ок.
На первый взгляд:
1) Попробуйте указать полный путь сохранения
2) Поставьте в первых строках кода
Код
ini_set('display_errors',1);
error_reporting(E_ALL);

3) Попробуйте запуститься у себя на денвере, возможно проблемы в настройках хоста...

Сообщение отредактировал BeerLoga - 17.10.2014, 9:23


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Brim
Brim
сообщение 17.10.2014, 10:31; Ответить: Brim
Сообщение #4


Участник
***

Группа: User
Сообщений: 182
Регистрация: 21.7.2013
Поблагодарили: 55 раз
Репутация:   8  


PHPExcel требует просто нереального количества памяти. Попробуйте сохранить для начала одну строку.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
samovar
samovar
сообщение 17.10.2014, 10:58; Ответить: samovar
Сообщение #5


Участник
***

Группа: User
Сообщений: 122
Регистрация: 26.3.2014
Поблагодарили: 79 раз
Репутация:   13  


BeerLoga, да походу он сохраняет туда же, где и сам скрипт лежит


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
BeerLoga
BeerLoga
сообщение 17.10.2014, 11:11; Ответить: BeerLoga
Сообщение #6


Частый гость
**

Группа: User
Сообщений: 85
Регистрация: 23.8.2014
Поблагодарили: 14 раз
Репутация:   4  


samovar, я просто сталкивался, что иногда не хочет сохранять в корень, а полный пишешь отлично сохраняет.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
VulkanPartner
VulkanPartner
сообщение 17.10.2014, 14:21; Ответить: VulkanPartner
Сообщение #7


Бывалый
****

Группа: User
Сообщений: 494
Регистрация: 27.3.2014
Поблагодарили: 102 раза
Репутация:   8  


Цитата(Sanasol @ 17.10.2014, 1:21) *
Импортируй в csv а там уже делай что хочешь.

Поддержу, с CSV гораздо проще, в крайнем случай файл в итоге можно пересохранить в xslx формате.


--------------------
VulkanPartner.com - ведущая гемблинг-партнерка с выплатами до 60% от дохода казино!


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
сообщение 17.10.2014, 14:32; Ответить: devuser
Сообщение #8


Все будет тип-топ
*****

Группа: Active User
Сообщений: 713
Регистрация: 5.12.2012
Из: Online
Поблагодарили: 342 раза
Репутация:   52  


У меня вместо этого участка вашего кода
Код
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save($filename);


Отлично работает такая комбинация
Код
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save($_SERVER['DOCUMENT_ROOT'] . '/prices/price.xlsx');


Ну и папка prices должна быть доступна для записи

Сообщение отредактировал devuser - 17.10.2014, 14:32


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
Topic Starter сообщение 18.10.2014, 11:04; Ответить: andreykashops
Сообщение #9


WordPress is my Life..
******

Группа: Active User
Сообщений: 1426
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 633 раза
Репутация:   139  


Спасибо всем за помощь, сделал по примеру devuser - все работает.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) php скрипты любой сложности / диз+верстка (адаптивно)
любые задачи на php - автоматизация, парсинг, работа с БД
1 affrodita 477 8.12.2017, 17:40
автор: affrodita
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыImage Optimizer (PHP)
6 bars96 904 17.11.2017, 0:47
автор: bars96
Открытая тема (нет новых ответов) Стабильный хостинг за 30р в месяц. GNU/Linux, PHP, MySQL, Perl, бэкапы. Помогу перенести сайт.
5 freeax 1530 10.11.2017, 13:15
автор: freeax
Горячая тема (нет новых ответов) [предлагаю] Качественные услуги по PHP/HTML/CSS/JS, любые движки
Услуги программирования
31 Alexandr_js 10020 2.11.2017, 16:36
автор: gretskov
Открытая тема (нет новых ответов) Web программирование на С/С++/PHP/MySQL/SQL, высоконагруженные проекты
Есть наработки в области бирж трафика, топов, тизеров, видео cj-тубов
3 DFService 718 1.11.2017, 21:09
автор: DFService


 



RSS Текстовая версия Сейчас: 12.12.2017, 5:10
Дизайн