使用phpexcel将MySql导出为ex​​cel

时间:2015-02-11 08:40:24

标签: php mysql phpexcel

大家好我已经创建了一个将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');

1 个答案:

答案 0 :(得分:0)

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

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

如果你绝对需要使用xls将输出类型更改为Excel2003,那么你需要更改内容类型标题以匹配它。