Отчет Cakephp Excel с помощью помощника XLS выдает предупреждающее сообщение в Windows и отображает всю структуру XML в открытом офисе - PullRequest
2 голосов
/ 29 августа 2011

Я использую помощник cakephp XLS для создания отчета Excel в моем проекте.Но сгенерированный файл выдает предупреждение в системе Windows, как показано ниже.enter image description here

Аналогичным образом тот же файл отображает всю разметку xml в open-office на linux, как показано ниже. enter image description here Часть кода файла представления показана ниже.* Мой клиент хочет получить правильный отчет Excel без каких-либо предупреждений в Windows.Пожалуйста, предложите мне любой помощник Excel для CakePHP, который будет генерировать надлежащий файл Excel для всех платформ и различных приложений.

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Ваша проблема в том, что вы используете помощника, который переводит ваши данные в формат xml.Excel может читать XML и HTML, но с предупреждением.Вы должны использовать тот, который Ivo предложил в комментариях. ССЫЛКА Этот помощник действительно создает действительный формат xls, который соответствует открытому офису и офису.Кроме того, этот помощник использует класс PHPExcel, который постоянно обновляется здесь , поэтому ваш код будет легко обновлять при необходимости.

Не забывайте следовать инструкциям, приведенным на странице помощника.

Я много пробовал этого помощника xls для cakephp, но ни одна из них не работала, как ожидалось, ни устарела, ни создавала таблицы xml или html, либо не работала вообще, хотя и не пробовала эту… все еще создаюпомощник, использующий PHPExcel, не доставит вам особых хлопот, вы можете использовать этот урок как основу для модификации помощника.

1 голос
/ 13 сентября 2011

Я думаю, вам нужно установить MIME-тип. Это случалось со мной в прошлом, и это было, когда MIME-тип старого помощника Excel был установлен на устаревшее значение.

Код от связанного (от Ivo) помощника имеет следующий код:

function _output($title) {
    header("Content-type: application/vnd.ms-excel"); 
    header('Content-Disposition: attachment;filename="'.$title.'.xls"');
    header('Cache-Control: max-age=0');
    $objWriter = new PHPExcel_Writer_Excel5($this->xls);
    $objWriter->setTempDir(TMP);
    $objWriter->save('php://output');
} 

Я бы удостоверился, что вы:

а) с использованием новейшего помощника (http://bakery.cakephp.org/articles/melgior/2010/01/26/simple-excel-spreadsheet-helper)

b) что тип mime действительно установлен.

c) что этот конкретный тип пантомимы является точным.

...