테이블은 웹사이트에서 흔히 생성되는 보고서 형식입니다. CSV는 비교적 간단합니다. 궁금한 사항이 있으면 몇 가지 CSV 예제를 차례로 게시하겠습니다. Excel 파일을 생성하고 읽습니다.
다음 기능을 실행하려면 먼저 클래스 라이브러리를 도입해야 합니다: PHPExcel. PHPExcel은 Excel 2007, PDF 형식, HTML과 같은 다양한 파일 형식을 읽고 쓰는 데 사용되는 강력한 PHP 클래스 라이브러리입니다. 이 클래스 라이브러리는 Microsoft의 OpenXML 및 PHP를 기반으로 하며 통합 문서, 글꼴 스타일, 그림, 테두리 등을 설정하는 등 Excel에 대한 강력한 지원을 제공합니다. Excel 파일을 읽는 방법을 살펴보겠습니다.
먼저 Excel 파일을 생성하는 방법을 살펴보겠습니다.
아래 코드의 arrayToExcel 함수의 기능은 2차원 데이터에서 Excel 파일을 생성하는 것입니다. 데이터 배열이며 서버에 저장됩니다.
require_once 'Classes/PHPExcel/Reader/Excel2007.php'; require_once 'Classes/PHPExcel/Reader/Excel5.php'; include 'Classes/PHPExcel/IOFactory.php'; function arrayToExcel($data){ $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setTitle('firstsheet'); $objPHPExcel->getDefaultStyle()->getFont()->setName('Arial'); $objPHPExcel->getDefaultStyle()->getFont()->setSize(10); //add data $i = 2; foreach ($data as $line){ $objPHPExcel->getActiveSheet()->setCellValue('A'.$i, $line['From']); $objPHPExcel->getActiveSheet()->getCell('A'.$i)->setDataType('n'); $objPHPExcel->getActiveSheet()->setCellValue('B'.$i, $line['To']); $objPHPExcel->getActiveSheet()->getCell('B'.$i)->setDataType('n'); $i++; } $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $file = 'excel.xls'; $objWriter->save($file); }
서버에 저장하기 싫고 생성 후 바로 클라이언트에 다운로드하고 싶은 경우에는 $objWriter-> 를 사용하는 대신 파일 출력 시 다음 코드를 추가하면 됩니다. save($file ; 엑셀의 내용을 배열로 재배열하는 함수입니다.
코드는 다음과 같습니다.
header("Pragma: public"); header("Expires: 0"); header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/vnd.ms-execl"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header('Content-Disposition:attachment;filename="excel.xls"'); header("Content-Transfer-Encoding:binary"); $objWriter->save('php://output');
간단한 접근 방식
코드는 다음과 같습니다.
이 글이 여러분에게 도움이 되기를 바랍니다. PHP에서 엑셀 파일의 내용을 생성하고 읽는 방법에 대한 소개입니다. PHP를 배우고 싶다면 이 사이트에 계속 관심을 가져주시기 바랍니다.