개발

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

농담곰이 2023. 5. 6. 21:50
반응형

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

반응형