Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2016, 08:43   #1
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию Joomla 3+ API вывод отчёта в Excel

Всех приветствую!
Вот возник вопрос тут у меня:
Хочу вывести отчёт в виде Excel, при помощи компонента PHPExcel, из Хэлпера посредством ajax, и вот что-то никак не допетрю...
функция из хелпера:
Код:
    public static function getReportAjax() {
        jimport('joomla.application.module.helper');
        jimport('phpexcel.library.PHPExcel');
        $Excel = new PHPExcel();
        $Excel->setActiveSheetIndex(0);
        $Sheet = $Excel->getActiveSheet();
...
        header('Content-Type:xlsx:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition:attachment;filename="simple.xlsx"');
        $objWriter = new PHPExcel_Writer_Excel2007($Excel);
        $objWriter->save('php://output');
при перемещении кода в основной модуль файл выгружается...

может есть смысл save'ить файл средствами JS или есть что-то ещё?
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 23.11.2016, 14:38   #2
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

Раз такое дело, то, делаем так:

Сохраняем файл под уникальным именем
и передаём пользователю кнопочку на загрузку, по которой можем потом JQuery'ем щёлкнуть )
Код:
.....
    $filefix = 'data/simple_'.JFactory::getDate('now')->format('dmYHis').'.xlsx'; // путь до файла
    $objWriter = new PHPExcel_Writer_Excel2007($Excel);
    $objWriter->save($filefix);
    $print = '<a href="'.$filefix.'" class="btn btn-large" id="msa_report_dwn">Скачать</a>';
return $print;
ну и после получения ссылки щёлкаем по ней

Код:
$.ajax ({
....
    success : function (data) {
        if ($('body').append(data)) {
            $('#msa_report_dwn').click();
остаётся только вопрос по удалению этого файла с сервера, но это уже из другой оперы...
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление пользователя Joomla 3+ API Рустам PHP 2 18.11.2016 18:54
Joomla API vs JQuery + Ajax Рустам WordPress и другие CMS 2 17.01.2014 12:14
Вывод отчёта на основе данных формы katrina-n Microsoft Office Access 6 30.11.2009 06:58
MS Access вывод отчёта на основе данных формы katrina-n Помощь студентам 0 29.11.2009 18:40
Вывод отчёта в Word sphinx Microsoft Office Word 1 22.10.2007 13:19