Позвоните phpexcel из Joomla - PullRequest
3 голосов
/ 08 марта 2011

У меня проблема с phpexcel и joomla. Я разрабатываю некоторую форму фильтра для загрузки отчетов Excel, поэтому я использовал библиотеку phpexcel для этого. Сейчас у меня есть только отчет, он работает нормально, но после этого я загружаю в joomla, используя компонент PHP pages , который позволяет мне помещать php-файлы в joomla и вызывать его.

Когда я их помещаю, я немного изменяю форму, которая вызывает php, который генерирует отчет Excel, я вызываю php, используя такую ​​ссылку:

h**p://www.whiblix.com/index.php?option=com_php&Itemid=24

То есть, вызывая его из Joomla, а не напрямую из php. Если бы я хотел позвонить php напрямую, я мог бы использовать этот путь:

h**p://www.whiblix.com/components/com_php/files/repImportaciones.php

В чем проблема? Проблема в том, что когда я вызываю php, который генерирует excel через joomla, загруженный excel поврежден и показывает только символы в одной ячейке, когда я ее открываю. Но если я вызываю php напрямую, отчет генерируется нормально. Я мог бы вызвать php напрямую, проблема в том, что если я вызываю его напрямую, я не могу использовать эту строку кода:

defined( '_JEXEC' ) or die( 'Restricted access' );

Это используется для запрета прямого доступа к php от прямого вызова, потому что он не работает из-за безопасности.

Где проблема? Это код php, который генерирует отчет (без кода, где генерируются строки и ячейки):

    <?php
//defined( '_JEXEC' ) or die( 'Restricted access' );
/** Error reporting */
error_reporting(E_ALL);
date_default_timezone_set('Europe/London');
require_once 'Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                             ->setLastModifiedBy("Maarten Balliauw")
                             ->setTitle("Office 2007 XLSX Test Document")
                             ->setSubject("Office 2007 XLSX Test Document")
                             ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
                             ->setKeywords("office 2007 openxml php")
                             ->setCategory("Test result file");
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Reporte de Importaciones');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="repPrueba.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

Ответы [ 2 ]

4 голосов
/ 01 декабря 2012

PHPExcel-Joomla-Library

Я создал библиотеку для Joomla, которая сделает весь процесс установки, использования и обновления более простым,Вы можете проверить это на github .Это доступно для Joomla!2,5 и 3

Обратная связь приветствуется.

0 голосов
/ 08 марта 2011

На форумах Joomla много информации об использовании PHPExcel с Joomla и на доске PHPExcel об исправлении конфликта между автозагрузчиками Joomla и PHPExcel.

...