PHPExcel下载文件,excel文件象形文字

时间:2015-07-15 22:27:56

标签: php encoding download phpexcel

我在下载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文件:

enter image description here

我无法从这个问题的其他问题中找到答案。

3 个答案:

答案 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');