2014-07-01 3 views
0

.xsl 파일에 html 테이블을 추출하지 않았습니다. symfony2에 phpExcel을 설치했지만 .xls 파일에 임의의 페이지를 추출하여 테스트하고 싶을 때, 첫 번째 부분의 파일은 횡설수설로 가득차 있습니다. 이유는 모르겠습니다. http://images4.hiboox.com/images/2714/f657dfd1d406e941cfbe3ff9dbc10f7b.pngPHPExcel : giberish로 가득 찬 헤더

이것은 내 HTML 테이블을 가지고있다. 여기

은 '코드 감사를 S :

$objPHPExcel = new \PHPExcel(); 
    $objPHPExcel->getProperties()->setCreator("foo"); 
    $objPHPExcel->getProperties()->setLastModifiedBy("bar"); 
    $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); 
    $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); 
    $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes."); 
    $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello'); 
    $objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!'); 
    $objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello'); 
    $objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!'); 
    echo date('H:i:s') . " Write to Excel2007 format\n"; 
    $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel); 
    //$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 
    //$objWriter->save('a.xls'); 
    header('Content-type: application/vnd.ms-excel'); 
    header('Content-Disposition: attachment; filename="PV AAPC"'); 
    $objWriter->save('php://output'); 

답변

0

출력하려면 아무 것도 보내지 않았는지 확인하십시오. 에코 또는 인쇄문이 없는지 확인하십시오. 스크립트 파일에 BOM 헤더가 없습니다. ?><?php 태그 사이에 빈 줄이 없어야합니다.

또한 Excel2007 Writer (OfficeOpenXML 형식 .xlsx 파일을 생성 함)를 사용하지만 BIFF 형식 .xls 파일의 콘텐츠 형식을 보내는 경우에도이 파일을 작성하고 있습니다.

OfficeOpenXML 형식 .xlsx 파일 (Excel2007 작성자를 사용하여 생성)에 대한 콘텐츠 형식 헤더를 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet으로 보내야합니다. 또는 당신이 답장을 보내 application/vnd.ms-excel

+0

안녕하세요, 변경되었습니다. 헤더하지만 횡설수설이 지속됩니다. '$ objWriter-> save ('php : // output');의 코드가'$ objWriter-> save ('php : // save'/출력 ');'그 임의의 문자가 와서! – user2203384

+0

'save()'를하기 전에'죽을 '경우,'save()'가 php : // output에 "횡설수설 한"것을 쓰고 있기 때문에 당연히 "횡설수설"을하지 않을 것입니다. . 물론, 당신은 당신의 파일을 얻지 못할 것입니다, 왜냐하면 그 "횡설수설 한"___is___ 파일 –

0

당신은 헤더를 보내기 전에 일부 디버그 정보를 표시합니다.

"echo date ..."줄을 제거하면 문제가 없습니다.

+0

헬로 감사의 콘텐츠 형식 헤더를 필요로하는 BIFF 형식의 .xls 파일을 생성 할 경우 Excel5 작가를 사용하지만, 난 아직이 잘못된 텍스트를 가지고 :/ – user2203384

+0

당신이 우리에게 줄 수 "$ objPHPExcel = new \ PHPExcel();"앞에있는 모든 코드 ? (예를 들어 PHP 엑셀 라이브러리 포함) – griotteau

+0

안녕하세요,이 객체 앞에는 아무것도 없습니다. 그러나 나는 폴더 안의 파일을 저장하려고한다고 생각한다 : $ objWriter-> save (str_replace ('.php', '.xlsx', __FILE __)); ' – user2203384

관련 문제