2015-01-15 3 views
0

Mysqlphp에서 excel 파일로 데이터를 내보내려고합니다.Wrong : excel to php and mysql

하지만 문제가 있습니다.

내 코드입니다 :

<?php 
header('Content-Type: text/html; charset=UTF-8'); 
session_start(); 

if(!isset($_SESSION['usuario'])) 
{ 
    header('Location: login.php'); 
} 

require('../conexion.php'); 
    $conexion = conexion(); 

    if (mysqli_connect_errno()) 
    { 
     printf("La conexión con el servidor de base de datos falló: %s\n", mysqli_connect_error()); 
     exit(); 
    } 

    $consulta = $_SESSION['query']; 
    echo $consulta; //consulta = SELECT * FROM cotion where status= 'Vea' 
    $resultado = mysql_query ($consulta, $conexion) or die (mysql_error()); 
$registros = mysql_num_rows ($resultado); 

if ($registros > 0) { 
    require_once 'excel/Classes/PHPExcel.php'; 
    $objPHPExcel = new PHPExcel(); 

    //Informacion del excel 
    $objPHPExcel-> 
    getProperties() 
     ->setCreator("Creator") 
     ->setLastModifiedBy("setLastModifiedBy") 
     ->setTitle("tittle") 
     ->setSubject("Subject") 
     ->setDescription("Description") 
     ->setKeywords("Keywords") 
     ->setCategory("Category");  

    $i = 1;  
    while ($registro = mysql_fetch_object ($resultado)) { 

     $objPHPExcel->setActiveSheetIndex(0) 
      ->setCellValue('A'.$i, $registro->pais); 

     $i++; 

    } 
} 
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="ex.xlsx"'); 
header('Cache-Control: max-age=0'); 

$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007'); 
$objWriter->save('php://output'); 
exit; 
mysql_close(); 
?> 

하지만 난 단지 그것을 볼 수 있습니다 :

enter image description here

하지만 난 엑셀 파일에 표시되지 않습니다, 나는 웹 브라우저에서 볼 .

나는 내 수출을하고 here

에서 이도 수있는 일에 대해 어떤 생각을 PHPExcel 클래스를 다운로드 here를 보았다?

Redirecting output to a client’s web browser에 PHPExcel 개발자 문서 섹션에서 당신에게

+0

상단에 파일 형식이 'text/html'인 헤더를 설정하고 있습니다. 그것을 제거하십시오. –

+0

나는'header'를 삭제했으나 여전히 같은 것을 보았습니다 s –

+0

@Eark를 삭제했습니다. @ Mark Baker가 말했습니다. 그러나 문제는 계속됩니다. –

답변

1

참고 caution 감사합니다

주의 :

  • 상관 에코 문 또는 출력 중 하나를 포함하지 않도록하십시오 Excel 파일 이외의 내용 <?php 태그를 열기 전에 공백이 없어야하고 닫는 ?> 태그 다음에 최대 한 줄의 줄 바꿈이 있어야합니다 (문제를 방지하기 위해 생략 할 수도 있음).
  • 스크립트가 BOM (Byte-order mark)없이 저장되었는지 확인하십시오.
  • 같은 일들이 모두가 당신이 프레임 워크의 일종을 사용하는 경우, 그것은 추가적인 출력을 다른 헤더를 보내거나 생성 될 수 있음을

참고 또한 파일을을 포함에 적용 (이 메아리 출력으로 계산하기 때문에) . 대부분의 프레임 워크는 해당 동작을 재정의 할 수있는 메커니즘을 제공합니다.