2011-07-30 7 views
3

PHPExcel 라이브러리를 사용하여 Excel 문서를 만들었습니다. 내 문서가 열리고 Numbers (Mac) 및 Office 2007 (Windows)에서 잘 보입니다. 내 파일을 .xlsx 파일로 저장합니다.PHPExcel 문서를 열 때의 경고/오류

파일을 열었을 때 제대로 표시되지만 다음과 같은 오류/경고가 나타납니다. 숫자에서

, 그것은 경고 준다 "시트에 암호 보호 기능이 지원되지 않습니다 및이 제거 된"

는 오피스 2007에서는 테 오류 "엑셀 'filename.xlsx'에서 읽을 수없는 콘텐츠를 발견을 제공합니다. "예를 클릭하면 모든 내용이 표시되며"레코드 삭제 :/sl/worksheets /에서 셀을 병합합니다. "라는 메시지가 나타납니다.이 통합 문서의 원본을 복구 하시겠습니까? sheet1.xml part ".

내 파일에 암호를 추가하지 않았습니다. 나는 또한 단 하나의 학습서 만 ​​가지고있다. 아무도 내가 이걸 어떻게 없앨 수 있는지, 왜 그걸 일으킬 수 있는지 알아?

답변

4

저도 같은 문제를 했어 그리고 난 단순히 $objWriter->save('php://output'); 명령 justafter

exit(); 

퍼팅 해결.

예 :

// Redirect output to a client’s web browser (Excel2007) 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment;filename="industrializzazione_RTW_'.$rows[0]['stagione'].'.xlsx"'); 
header('Cache-Control: max-age=0'); 

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

mergecells가있는 스프레드 시트를 작성하는 CakePHP를 사용하는 동안 비슷한 점이있었습니다. Excel 2003에서는 제대로 작동하지만 Excel 2007 형식에서는 작동하지 않습니다.

$objPHPExcel->getActiveSheet()->mergeCells('C30:E30'); 

스프레드 시트를 잘 작성하면 2007 스프레드 시트를 작성할 수 있습니다. 그러나 이러한 변형과 ​​같은 변수를 사용하는 경우 :

$mergestr = '\'C'.(30+$i).':E'.(30+$i).'\''; 
$objPHPExcel->getActiveSheet()->mergeCells($mergestr); 
$objPHPExcel->getActiveSheet()->mergeCells(eval("return \$$mergestr;")); 
$objPHPExcel->getActiveSheet()->mergeCells('\'C'.(30+$i).':E'.(30+$i).'\''); 
$objPHPExcel->getActiveSheet()->mergeCells('C'.(30+$i).':E'.(30+$i)); 

나는 이와 같은 오류가 발생합니다. 나는 PHPExcel이 Excel2007 작가를 좋아할 것 같은 방식으로 변수를 벗어날 수있는 방법이 있는지 확신하지 못합니다. Excel5 작가는 위의 마지막 예제와 잘 작동합니다. 희망이 사람을 도움이됩니다.

관련 문제