본문 바로가기
개발

CodeIgniter PHP로 엑셀 다중 시트 생성하는 방법

by 농담곰이 2023. 5. 6.
반응형

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 라이브러리는 스타일, 이미지

반응형

댓글