phpexcel的奇怪行为

时间:2017-12-28 08:29:34

标签: php excel phpexcel

当尝试从php使用phpexcel获取Excel电子表格时,如果添加了常量定义(DEFINE(' var',' value')),则会在输出中生成奇怪的字符。 我的代码

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="theFile.xls"');
header('Cache-Control: max-age=0');

require_once '../config.php';
include 'PHPExcel.php';
$excel = new PHPExcel();

$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');

$excel->setActiveSheetIndex(0);
$excel->getActiveSheet()->SetCellValue('A1', 'Hello');
$excel->getActiveSheet()->SetCellValue('B2', 'world!');
$writer->save('php://output');      

我不明白原因,因为配置。 php就是它的全部内容。

如果删除配置。 php行,正确生成excel文件 有谁知道这种行为是由什么引起的?

此代码运行顺利

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="theFile.xls"');
header('Cache-Control: max-age=0');

include 'PHPExcel.php';
$excel = new PHPExcel();

$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');

$excel->setActiveSheetIndex(0);
$excel->getActiveSheet()->SetCellValue('A1', 'Hello');
$excel->getActiveSheet()->SetCellValue('B2', 'world!');
$writer->save('php://output');      

config.php内容

define('DB_HOST', 'myHost');
define('DB_USER', 'myUser');
define('DB_PASSWORD', 'myPass');
define('DB_DATABASE', 'myDB');

1 个答案:

答案 0 :(得分:0)

我终于找到了它。 输出到excel文件不允许ECHO或任何其他类型的文本输出,在我的情况下配置文件在开头有一个空行

--->here
<?php 
define('DB_HOST', 'myHost');
define('DB_USER', 'myUser');