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' 확장자를 부여해야합니다. – alex

+0

코드에 헤더가 없는지 확인하십시오. 처음부터 확인하거나 헤더를 검색하십시오. 내가 포함하는 사이에 1 개의 헤더()가 있다는 것을 깨닫기 위해 2 시간을 보냈다. –