CodeIgniter에서 PHPExcel 라이브러리를 사용하여 다중 시트를 포함하는 엑셀 파일을 생성하는 방법을 안내하겠습니다.
1. PHPExcel 라이브러리 다운로드 및 설치:
PHPExcel 라이브러리를 다운로드한 후, 압축을 해제하고 라이브러리 디렉토리를 CodeIgniter 프로젝트의 `application/third_party/` 폴더에 업로드합니다. 다운로드 페이지: https://github.com/PHPOffice/PHPExcel
2. PHPExcel 라이브러리를 사용하기 위한 래퍼 클래스 생성:
`application/libraries/` 디렉토리에 새로운 파일 `Excel.php`을 생성하고 다음 코드를 붙여 넣습니다.
```php
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
require_once APPPATH . "/third_party/PHPExcel/Classes/PHPExcel.php";
class Excel extends PHPExcel
{
public function __construct()
{
parent::__construct();
}
}
```
이제 CodeIgniter 프로젝트에서 PHPExcel 라이브러리를 사용할 수 있습니다.
3. 다중 시트를 포함하는 엑셀 파일 생성:
컨트롤러에서 PHPExcel 라이브러리를 로드하고 다중 시트를 포함하는 엑셀 파일을 생성하는 코드를 작성합니다.
```php
<?php
class Export extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('excel');
}
public function multi_sheet_excel()
{
$objPHPExcel = new Excel();
// 첫 번째 시트 생성
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('Sheet 1');
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'World');
// 두 번째 시트 생성
$objPHPExcel->createSheet();
$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setTitle('Sheet 2');
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'CodeIgniter');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'PHPExcel');
// 생성된 엑셀 파일을 브라우저로 출력
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="multi_sheet_example.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
}
}
```
이제 `http://your_domain.com/index.php/export/multi_sheet_excel`를 방문하면, 두 개의 시트가 포함된 엑셀 파일이 다운로드됩니다. 각 시트에 데이터를 추가하려면 `$objPHPExcel->getActiveSheet()->setCellValue()` 메소드를 사용하여 셀 값을 설정하십시오.
이 예제에서는 PHPExcel 라이브러리의 일부 기능만 사용했습니다. PHPExcel 라이브러리는 스타일, 이미지
'개발' 카테고리의 다른 글
안드로이드 코틀린으로 나이트 모드 적용하는 방법 (0) | 2023.05.06 |
---|---|
PHP로 엑셀 다중 시트 생성하는 방법 (0) | 2023.05.06 |
jQuery Datatable에서 page.info().recordsTotal이 0으로 출력되는 문제 해결 방법 (0) | 2023.05.06 |
[Linux] 깨진 파일명을 가진 파일 삭제하는 방법 (0) | 2023.05.06 |
PHP 메모리 무제한 설정하는 방법 (Out of Memory 에러 오류 해결) (0) | 2023.05.06 |
댓글