PHPExcel의 저장 메소드를 사용하는 경우
// xls 파일로 저장합니다. 단, 서버에만 저장되므로 로컬에서 수동으로 다운로드해야 합니다.
$writer->save('제품 목록.xls');
직접 다운로드:
if ($this->fileVersion == 'Excel5') {
header('Content-Type: application/vnd.ms-excel'); // xls 형식으로 파일 출력
header('Content-Disposition: attachment;filename="' . $config['fileName'] . '.xls"') //브라우저에게 출력 파일의 이름을 알려줍니다.
} 또 다른 {
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') // xlsx 형식의 출력 파일
header('Content-Disposition: attachment;filename="' . $config['fileName'] . '.xlsx"') //브라우저에게 출력 파일의 이름을 알려줍니다.
}
// IE 9에 서비스를 제공하는 경우 다음이 필요할 수 있습니다.
header('캐시 제어: max-age=1');
// SSL을 통해 IE에 서비스를 제공하는 경우 다음이 필요할 수 있습니다.
header('Expires: Mon, 26 July 1997 05:00:00 GMT') // 과거의 날짜
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT') // 항상 수정됨
header('Cache-Control: 캐시, 재검증 필수') // HTTP/1.1
header('프라그마: 공개'); // HTTP/1.0
$writer->save('php://output');
내보낸 xls 파일은 php://output을 통해 직접 다운로드할 수 있으며, xls 파일은 서버에 생성되지 않습니다.
단, 다운로드 시 브라우저에서 직접 오류가 보고됩니다. 개발자 도구가 네트워크에 나타났으나 파일 다운로드 작업을 실행하지 않았습니다.
< /p>
이 왜곡된 코드가 헤더 바로 앞에 있는 경우 print_r($writer);
는 $writer 개체를 볼 수 없습니다. 코드> 깨짐
이 질문에 대해 매우 혼란스럽습니다
이 방법을 사용하면 내보낸 파일을 직접 다운로드할 수 있지만 Ajax를 사용할 수는 없습니다.
header('Content-Type: application/vnd.ms-excel');
改为header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
改为header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8');