【问题标题】:PHPExcel download file, excel file hieroglyphicsPHPExcel下载文件,excel文件象形文字
【发布时间】:2015-07-15 22:27:56
【问题描述】:

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

我无法从有关此问题的其他问题中找到答案。

【问题讨论】:

  • 尝试删除标题并查看输出的内容。它可能会向您吐出错误,但将其解释为 excel,因为您强迫它这样做。
  • 在文本编辑器中打开文件。寻找前导/尾随空白字符; BOM 表头;或文件正文中的任何纯文本消息
  • 我删除了标题,在浏览器中也是一样

标签: php encoding download phpexcel


【解决方案1】:

一开始的 PK 泄露了它是一个zip 文件。巧合的是,xlsx 是一种特殊的zip 文件。尝试将文件保存为.xlsx 而不是.xls,Excel 应该可以正确处理它。

如果您指定 Excel2007 作为格式,您将获得一个 .xlsx 文件。如果您需要.xls 文件,也许您可​​以改用Excel2003

【讨论】:

  • 注意到了,我错过了; Content-Type 中的 charset=utf-8 也完全没有意义; Excel 文件的字符集是文件内容本身的一部分
  • 还有一个问题,当我保存并打开文件时没问题,但是当我直接用 Excel 打开时,它就像以前一样,带有象形文字。
  • 当像 filename.xlsx.xls 一样打开它的保存时
【解决方案2】:

请在您的文件下载代码前添加代码

ob_end_clean();
ob_start();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-15
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多