2012-01-18 4 views
1

Например, я использую такой код:Отображение файла excel в браузере. PHPExcel

<?php 

    require_once("D:\server/www/cls/PHPExcel.php"); 
    require_once("D:\server/www/cls/PHPExcel/IOFactory.php"); 

    $objPHPExcel = new PHPExcel(); 

    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B2', 'HeaderB');  
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C2', 'HeaderC'); 
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D2', 'HeaderD');  
    ob_end_clean(); 

    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
    header("Cache-Control: no-store, no-cache, must-revalidate"); 
    header("Cache-Control: post-check=0, pre-check=0", false); 
    header("Pragma: no-cache"); 
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
    header('Content-Disposition: attachment;filename="report.xlsx"'); 

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
    ob_end_clean(); 

    $objWriter->save('php://output'); 
?> 

Он загружает файл report.xlsx и не отображает его в браузере. Как это сделать?

Спасибо!

ответ

3

Удалить эту линию ...

header('Content-Disposition: attachment;filename="report.xlsx"'); 

пользователь должен иметь что-то в своем браузере, поддерживающие возможность просмотра Excel файл тоже.

+0

Это смешно .. Теперь я загружаю сам файл '* .php' :) Что случилось? Я удалил заголовок содержимого. – lexeme

+0

@helicera: вам нужно указать имя файла 'xlsx' extension. – alex

+0

Убедитесь, что в вашем коде нет заголовков. Проверьте с самого начала или выполните поиск заголовков. Принял меня 2 часа, чтобы понять, что у меня было 1 заголовок() среди моих включений. –

Смежные вопросы