当尝试从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');
答案 0 :(得分:0)
我终于找到了它。 输出到excel文件不允许ECHO或任何其他类型的文本输出,在我的情况下配置文件在开头有一个空行
--->here
<?php
define('DB_HOST', 'myHost');
define('DB_USER', 'myUser');
等