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


 

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

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


День добрый!

Стоит у меня задача сделать экспорт товаров с магазина в эксель файлик. Использую 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


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


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






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


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


С кодом впринципе все ок.
На первый взгляд:
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


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


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


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


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


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


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


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

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


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


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


У меня вместо этого участка вашего кода
Код
$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


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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
44 qpPeW 20953 22.2.2021, 15:08
автор: qpPeW
Открытая тема (нет новых ответов) Fullstack-разработчик на PHP
0 trueApp 213 15.2.2021, 15:52
автор: trueApp
Открытая тема (нет новых ответов) Поиск кодера в команду. PHP, Pyton. На постоянку.
7 getsend_mw 1453 3.2.2021, 21:15
автор: getsend_mw
Открытая тема (нет новых ответов) Парсинг, наполнение\обработка, верстка и перенос сайтов, программирование на php
Спаршу\обработаю\залью контент для ваших сайтов\магазинов
1 mazdada 425 26.12.2020, 21:46
автор: Mukis
Открытая тема (нет новых ответов) База ссылочных доноров (netsoltrademark.php)
0 Seomanchik 618 8.12.2020, 20:01
автор: Seomanchik


 



RSS Текстовая версия Сейчас: 26.2.2021, 23:29
Дизайн