4

我有关于 phpexcel 和 joomla 的问题。我正在开发一些过滤表单来加载 excel 报告,所以我使用 phpexcel 库来执行此操作。现在我只有一个报告,它工作正常,但之后我使用PHP 页面组件在 joomla 中上传,该组件允许我将 php 文件放入 joomla 并调用它。

当我放置它们时,我稍微更改了调用生成 excel 报告的 php 的表单,我使用如下链接调用 php:

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

也就是说,从 Joomla 调用它,而不是直接从 php.ini 调用它。如果我想直接调用 php,我可以使用这个路径:

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

有什么问题?问题是,当我调用通过 joomla 生成 excel 的 php 时,下载的 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;
4

2 回答 2

4

PHPExcel-Joomla-库

我已经为 Joomla 构建了一个库,这将使安装、使用和更新它的整个过程更加容易。你可以在github上查看。它适用于 Joomla!2.5 和 3

欢迎反馈。

于 2012-12-01T17:03:09.273 回答
0

在 Joomla 论坛上有很多关于在 Joomla 中使用PHPExcel以及在PHPExcel 板上关于修复 Joomla 和 PHPExcel 自动加载器之间冲突的信息。

于 2011-03-08T08:56:28.230 回答