使用 phpexcel 将 MySql 导出到 excel

Using phpexcel to export MySql to excel

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

错误:您尝试打开的文件格式与文件 extension.Verify 指定的格式不同,该文件未损坏并且在打开 file.Do 你想现在打开文件吗?

当我单击“是”时,我在 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,但您还需要更改内容类型 header 以匹配它。