我在下载excel文件时遇到问题。当我在服务器上保存它工作正常。但是当我尝试下载时出错了。这是我的代码:
$result = getSoapResult($soapURL, $soapWSDL, $soapMETHOD, $inputParameters);
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header('Content-Disposition: attachment;filename="file_name.xls"');
header('Cache-Control: max-age=0');
$objExcel = new PHPExcel();
$objExcel->setActiveSheetIndex(0);
$rowCount = 1;
$column = 'A';
foreach($result as $key => $value){
if($rowCount == 1){
foreach($value as $k => $v){
$objExcel->getActiveSheet()->SetCellValue($column.$rowCount, $k);
$column++;
}
$rowCount++;
}
$column = 'A';
foreach($value as $k => $v){
$objExcel->getActiveSheet()->SetCellValue($column.$rowCount, $v);
$column++;
}
$rowCount++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
ob_clean();
$objWriter->save('php://output');
它提供了一个包含此内容的excel文件:
我无法从这个问题的其他问题中找到答案。
答案 0 :(得分:3)
开头的PK给它一个zip
文件。巧合的是,xlsx
是一种特殊的zip
文件。尝试将文件保存为.xlsx
而不是.xls
,Excel应正确处理。
鉴于您已将Excel2007
指定为格式,您需要获取.xlsx
文件。如果您需要.xls
文件,可以改为使用Excel2003
。
答案 1 :(得分:0)
请在文件下载代码之前添加代码
ob_end_clean();
ob_start();
答案 2 :(得分:0)
试试这个
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
ob_end_clean();
$objWriter->save('php://output');