TIP게시판

제목 PHPExcel사용방법
글쓴이 헛발이 작성시각 2015/02/10 18:25:59
댓글 : 6 추천 : 3 스크랩 : 2 조회수 : 37961   RSS
인터넷에 수많은 예제들을 봣지만 마땅히 간단히 나온게 없어서 제가 정리 해 봅니다.
아무래도 고객이 엑셀작업을 요구하는 경우가 있어서 이번에 저도 맘 잡고 들여다 봤습니다.

여러가지 라이브러리가 있지만 아무래도 PHPExcel을 많이 사용하는거 같고 그래도 안정적인거 같아
PHPExcel로 결정했습니다...

해당라이브러리 다운로드
https://phpexcel.codeplex.com/
(그때그때 버젼업이 되니 필요한걸 다운 받으세요..)

STEP1
코드이그나이터에 설치 합니다. 다운로드 한 파일을 압축풀면 Classes라는 폴더 안에
PHPExcel.php 와 PHPExcel 폴더 두개가 있습니다..
이것을 Applecation/libraries/안에 복사해 넣습니다.
Applecation/libraries/PHPExcel.php
                                  PHPExcel

STEP2
다른 설명해 놓은 곳에 있는것을 해보면 잘 안되더군요..여기 포럼에도 웅파님이 적어 두신
Hook를 이용한 것도 있었지만 사용방법도 어렵고... 사실 아주 간단히 사용하고 싶거든요..
이렇게 해 보겠습니다....
$this->load->library("PHPExcel");
$objPHPExcel = new PHPExcel();
$objPHPExcel = PHPExcel_IOFactory::load('파일경로');
$sheetsCount = $objPHPExcel->getSheetCount();

echo $sheetsCount;  //쉬트의 갯수출력
이것만으로도 엑셀파일을 읽어 오는것이 가능합니다.


TIP1
좀더 작성해 보면 다음과 같이 할 수 있습니다.
$this->load->library("PHPExcel");
$objPHPExcel = new PHPExcel();
$objPHPExcel = PHPExcel_IOFactory::load('파일경로');
$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);
    }
}

TIP2
또하나  팁으로 엑셀의 날짜가 간혹 41852 이렇게 보일때가 있습니다.
이것은 엑셀서식이기에 우리가 흔히 쓰는 형식으로 변경을 해줘야 할때가 있습니다.
 
그럴땐 이렇게 해 주시면 됩니다.
$date = PHPExcel_Style_NumberFormat::toFormattedString($날짜변수, PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
이렇게 처리 하시면 됩니다.


TIP3
이럴 경우도 있쬬.. 이미 서버에 있는 파일이 아니고 업로드 폼을 통해서
직접선택한 엑셀파을을 읽을 경우도 있죠.
이를땐 이렇게 합니다..
....
$file_name = $_FILES["userfile"]["tmp_name"];
$objPHPExcel = PHPExcel_IOFactory::load($file_name);
....
이렇게 업로드한 파일도 서버에 저장하지 않고 직접 읽을 수 있습니다.



좀더 구체적인 방법을 원하시면
http://phpexcel.codeplex.com/
위의 링크로 가셔서 직접 찾아 보시거나 구글을 통해 찾아 보시기 바랍니다.
 다음글 slack 메신저에 메세지 보내기 (4)
 이전글 요즘 쓰고 있는 모델 기본 포맷 입니다. (7)

댓글

한대승(불의회상) / 2015/02/11 11:06:02 / 추천 0
와우.. 금쪽 같은 정보 정말 감사 합니다.
야동순재 / 2015/02/12 16:20:17 / 추천 0
좋은정보 정말 감사합니다.
KkamSe / 2015/02/16 12:49:51 / 추천 0
좋은정보 감사드립니다~^^
음펴 / 2015/08/11 11:36:46 / 추천 0
좋은 정보 감사합니다.
초보개발자J / 2016/03/04 13:14:18 / 추천 0

와.. 좋은정보 감사합니다. 이걸로  서버에 저장없이 엑셀파일을 읽을수있어서 정말 좋았어요.^^

 

하늘치 / 2018/04/02 17:31:25 / 추천 0
좋은 정보 감사합니다~ ^^