2012-01-18 6 views
1

Par exemple, je suis en utilisant ce code:Afficher un fichier Excel dans un navigateur. 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'); 
?> 

Il télécharge le fichier report.xlsx et ne l'affiche pas dans un navigateur. Comment puis-je le faire?

Merci!

Répondre

3

Supprimer cette ligne ...

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

L'utilisateur doit avoir quelque chose dans leur navigateur capable d'afficher le fichier Excel aussi.

+0

C'est marrant .. Maintenant, je télécharge le fichier '* .php' lui-même :) Quel est le problème? J'ai supprimé l'en-tête de disposition de contenu. – lexeme

+0

@helicera: Vous devrez donner au fichier l'extension 'xlsx'. – alex

+0

Assurez-vous que vous n'avez aucun en-tête dans votre code. Vérifiez depuis le début ou faites une recherche pour les en-têtes. Il m'a fallu 2 heures pour réaliser que j'avais 1 en-tête() parmi mes inclus. –

Questions connexes