Web/PHP

CodeIgniter 에서 PHPExcel 사용하여 Excel 파일 읽기

기저귀찬개발자 2019. 5. 7. 10:35

PHP에서 사용 가능한 Excel 관련 라이브러리가 많이 있으나 그나마 가장 많이 사용되는

PHPExcel을 사용하여 Excel 파일에서 데이터를 가져오는 기능 구현을 하겠다.

 

환경

OS : Ubuntu 16.04

PHP : PHP7.0

 

순서

1. PHPExcel 라이브러리 다운로드 

2. Codeigniter 삽입

3. 파일 폼 전송 처리

 

 

1. PHPExcel 라이브러리 다운로드 ( https://github.com/PHPOffice/PHPExcel )

 - 위 사이트에 접속 후에 ZIP 파일로 다운로드 받는다.

 - Git 을 사용하여 Clone 받아도 무방하다.

 

 

 

2. Codeigniter 라이브러리 삽입

 - 우리는 Classes 안에 있는 PHPExcel 폴더와 PHPExcel.php 파일이 필요하다.

 - 해당 파일들을 codeigniter 프로젝트 /application/libraries 에 복사한다.

/프로젝트명/application/libraries/PHPExcel
/프로젝트명/application/libraries/PHPExcel.php

 

3. 파일 폼 전송 처리

 - 서버에 업로드하여 사용해도 괜찮지만 굳이 서버에 저장할 필요가 없다면 해당 예제를 따라한다

 - 업로드 하여 사용할 경우는 upload 후에 파일 경로를 load 부분에 다시 셋팅해주자

$this->load->library("PHPExcel");
$objPHPExcel = new PHPExcel();
$objPHPExcel = PHPExcel_IOFactory::load($_FILES['excel']['tmp_name']);
$sheetsCount = $objPHPExcel->getSheetCount();
	 
for($i = 0; $i < $sheetsCount; $i++)
{
	$objPHPExcel->setActiveSheetIndex($i);
	$sheet = $objPHPExcel->getActiveSheet();
	$highestRow = $sheet->getHighestRow();
	$highestColumn = $sheet->getHighestColumn();
 
	// 한줄읽기 */
	for ($row = 1; $row <= $highestRow; $row++)
	{
		// $rowData에 한줄의 데이터를 배열처리 된다. 
		$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
	}
}