Если я сохранить его в файл:PHPExcel возвращать поврежденный файл
$objWriter->save("test.xls");
А затем загрузить с сервера, я могу открыть файл без каких-либо проблем.
Но когда я пытаюсь сохранить в php://output
, получил поврежденный файл, как описано в this вопрос.
Я попытался это:
ob_end_clean();
header("Content-type: application/vnd.ms-excel");
header('Content-Disposition: attachment; filename="test.xls"');
header("Pragma: no-cache");
header("Expires: 0");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
ob_end_clean();
не помогает.
Я пробовал PHPExcel_Writer_Excel2007
и PHPExcel_Writer_Excel5
. Та же проблема.
UPD: Как я вижу, файл excell имеет спецификацию при запуске («EF BB BF»). Но я проверил весь мой скрипт, у них нет символа спецификации. Итак, означает ли это, что PXPExcell добавляет спецификацию?
Нет, PHPExcel не добавляет BOM: если это так, он никогда не будет работать для всех, кто в любой точке мира (в том числе и я) ..... Если BOM добавляется это не PHPExcel –
@MarkBaker У меня нет символов спецификации в моих скриптах. Я проверил все файлы с шестнадцатеричным редактором, нет 'EF BB BF' – Suvitruf
Есть ли что-нибудь еще, видимое в файле, когда вы просматриваете его в виде открытого текста? Любые ведущие/конечные пробелы? Любые текстовые сообщения? –