我想从我的mysql数据库中导出一些数据到excel文件。我正在使用PHPExcel库来做到这一点。 我有这样的代码:使用PHPExcel将数据从mysql导出到xls
include 'PHPExcel/PHPExcel.php';
include 'config.php' //here I connect to db
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$sheet = $objPHPExcel->getActiveSheet();
$r = mysql_fetch_array(mysql_query("SELECT * FROM Users WHERE ID=6"));
..
Some cells formatting here
..
$sheet->SetCellValue('A1', "NUMER ZLECENIA: ".$r["ID"]);
..
Rest of formatting
..
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
exit;
现在,当我运行,文件下载成功,但是当我试图打开它,我看到错误:“文件是在不同的文件格式比它的扩展名表示“。但是,当我删除。$ r [”ID“]并将其替换为一个数字时,该文件就打开了。
可能是由于错误的编码引起的,在db中我编码的是UTF-8,但ID只是数字。我不知道为什么它不起作用。
如果ob_end_clean()的工作原理,那么你的脚本产生的额外输出被发送到php://输出(警告消息就是这种输出的一个很好的例子) - 但ob_end_clean()只是一个工作,真正的解决方案是识别输出在文件中使用文本编辑器是一种很好的方法)并删除该输出 –