大家好我已经创建了一个将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');
答案 0 :(得分:0)
当您命名文件时,在底部附近使用文件扩展名.xlsx,这是Office 2007中基于openxml的文档的正确文件扩展名应该可以解决您的问题。
header('Content-Disposition: attachment;filename="survey.xlsx"');
如果你绝对需要使用xls将输出类型更改为Excel2003,那么你需要更改内容类型标题以匹配它。