Заголовок PHP Excel
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-type: application/x-msexcel; charset=utf-8");
header("Content-Disposition: attachment; filename=abc.xsl");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
echo "Some Text"
Вот код для записи и загрузки файла xsl с помощью php,
моя проблема в том, когда я открываю Excel файл. MS-Excel показывает предупреждение перед открытием файла.
Файл, который вы пытаетесь открыть, находится в другом формате, чем указано в расширении файла... Blah blah
Что делать с кодом PHP, чтобы удалить это предупреждение? Содержание написано правильно.
Я знаю, это потому, что контент, записанный в файле, является содержимым файла txt, а расширение файла неверно, т.е. xls. Решение?
Пожалуйста, не предлагайте использовать какую-либо библиотеку.
Ответы
Ответ 1
Вы предоставляете несколько заголовков Content-Type
. application/vnd.ms-excel
достаточно.
И есть пара синтаксических ошибок. К завершению оператора с помощью ;
в инструкции echo и неправильном расширении имени файла.
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=abc.xls"); //File name extension was wrong
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
echo "Some Text"; //no ending ; here
Ответ 2
Попробуйте это
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment;filename=\"filename.xlsx\"");
header("Cache-Control: max-age=0");
Ответ 3
Просто попробуйте добавить exit;
в конец вашего PHP скрипт.