PHP Excel Пустые строки и заголовки - PullRequest
0 голосов
/ 13 марта 2012

При использовании PHP для вывода файла Excel все работает нормально, однако каждый файл Excel имеет 3 пустых строки вверху.Заголовки таковы:

<?php
header ("Expires: Mon, 28 Oct 2008 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/vnd.ms-excel");
header ("Content-Disposition: attachment; filename=\"GridExport.xls" );
header ("Content-Description: Generated Report" );
echo $content_for_layout;
?>

При просмотре 3 пустых строк в текстовом редакторе, таком как блокнот, я фактически вижу одну пустую строку, за которой следует строка с одним пробелом, а затем еще одна пустая строка, так что это в основном эквивалентно:

\n.\n\n

, где точка = один пробел.

Наконец, когда я открываю файл в Excel> 2003, я получаю это сообщение об ошибке, что файл находится не в нужном формате, но, нажав «Да», он открывается нормально (за исключением проблемы с 3 пустыми строками). Можно ли отправить правильные заголовки, чтобы не получать это сообщение? Смотрите скриншот по адресу:

https://twiki.auscope.org/wiki/pub/Grid/WfsReaderWs/OpenFileWarning.png

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Не должен:

header ("Content-Disposition: attachment; filename=\"GridExport.xls" );

быть

header ("Content-Disposition: attachment; filename=\"GridExport.xls\"" );

Я не знаю, так ли это, но в любом случае он мне кажется неправильным.

0 голосов
/ 13 марта 2012

Если вы выводите CVS с расширением XLS, Excel 2007 и выше выдаст предупреждение, что это не файл Excel, но все равно откройте его. Более ранние версии не будут давать этого предупреждения. Правильный вывод его в виде файла CSV не вызовет этой ошибки и не помешает другим приложениям обработки CVS обработать его.

Что касается строк - невозможно сказать, не зная, что находится в $ content_for_layout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...