使用phpexcel将MySql导出到excel


Using phpexcel to export MySql to excel

大家好,我已经创建了一个将MySQL数据导出到excel的程序,但在尝试打开excel文件时,有时会出现错误。

错误:您试图打开的文件的格式与文件扩展名指定的格式不同。在打开文件之前,请验证该文件是否已损坏,并且来自受信任的源。你想现在打开文件吗?

当我点击"是"时,我会在excel文件中看到一些有趣的字符。这是我的代码:

 include 'setup.php'; 
 _connectsurvey(); //Database
 require_once 'PHPExcel.php';
 $objPHPExcel = new PHPExcel();
 $query = "SELECT * FROM questionanswer";
 $result = mysql_query($query) or die(mysql_error());
 $objPHPExcel = new PHPExcel();
 $rowCount = 1;
 while($row = mysql_fetch_array($result)){
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['gender']);
  $objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['city']);
  $rowCount++;
  pr($objPHPExcel);
}
 header('Content-Type: application/vnd.openxmlformats-   officedocument.spreadsheetml.sheet');
 header('Content-Disposition: attachment;filename="survey.xls"');
 header('Cache-Control: max-age=0');
 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
 $objWriter->save('php://output');

在底部附近,当您使用文件扩展名.xlsx命名文件时,它是office 2007中基于openxml的文档的正确文件扩展名,应该可以解决您的问题。

header('Content-Disposition: attachment;filename="survey.xlsx"');

如果您绝对需要使用xls,请将输出类型更改为Excel2003,但也需要更改内容类型标头以匹配它。