我正在使用PHPEXxcel导出使用MysqL生成的HTML表,就像这样.
<?PHP $query = "SELECT `Firstname`,`Lastname`,`Branch`,`Gender`,`Mobileno`, `Email`
FROM `student_details` WHERE Branch IN ('$branch') and `Year`='$year'
and Tenthresult > '$tenth' and
Twelthresult > '$twelth' and (CGPA > '$cgpa' || CGPA = '$cgpa')";
$result = MysqL_query($query);
confirm_query($result);
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$rowCount = 1;
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount,'Firstname');
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount,'Lastname');
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount,'Branch');
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowCount,'Gender');
$objPHPExcel->getActiveSheet()->SetCellValue('E'.$rowCount,'Mobileno');
$objPHPExcel->getActiveSheet()->SetCellValue('F'.$rowCount,'Email');
while($row = MysqL_fetch_array($result)){
$rowCount++;
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['0']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['1']);
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, $row['2']);
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowCount, $row['3']);
$objPHPExcel->getActiveSheet()->SetCellValue('E'.$rowCount, $row['4']);
$objPHPExcel->getActiveSheet()->SetCellValue('F'.$rowCount, $row['5']);
}
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('some_excel_file.xlsx');
?>
它的工作原理,但它将xlsx文件保存在根文件夹中,而不向用户显示任何下载的迹象.
当我点击一个按钮时,这段代码会变坏.现在,我可以下载邮件附件,并在前端显示用户下载的位置以及下载邮件附件.
我试过用
header('Content-Type: application/vnd.ms-excel');
header('Content-disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
有了这个,我得到了我想要的,但打开时下载的xls文件显示
消息
‘您尝试打开的文件’文件名’的格式与指定的扩展名不同…..等等.您要立即打开吗?
在打开时它包含整个HTML页面或它只是空白…
有谁能够帮助我..?
解决方法:
电子表格101
有许多不同的电子表格文件格式,每种格式都有自己不同的文件扩展名,并且可以使用不同的mime类型发送到Web浏览器.这些在PHPExcel文档中描述,并且每个文档在PHPExcel中都有自己的不同Writer.你不匹配两种不同的格式
BIFF Format
Used by Microsoft Excel between versions 95 and 2003 File
extension: xls
Mime Type: application/vnd.ms-excel
OfficeOpenXML Format
不要混淆和匹配:如果你这样做,那么Excel会(并且有理由地)抱怨.如果需要BIFF文件,请使用PHPExcel的BIFF Writer(Excel5),.xls的文件扩展名和上面列出的BIFF格式的mime类型.如果需要OfficeOpenXML文件,请使用PHPExcel的Excel2007 Writer,.xlsx的文件扩展名和上面列出的OfficeOpenXML的mime类型.
编辑
请注意,随PHPExcel发行版提供的示例包括01simple-download-xls.PHP和01simple-download-xlsx.PHP,以准确演示您想要的内容