CI 묻고 답하기

제목 PHPExcel 라이브러리 사용방법..
카테고리 CI 2, 3
글쓴이 니로 작성시각 2016/11/29 09:24:45
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 19813   RSS

http://codeigniter-kr.org/bbs/view/tip?idx=8319&page=2&view_category=&lists_style=

위 게시물을 보고.. 따라 해봤는데요

 

파일이 읽어지지 않는거 같아요 물론 제가 뭘 잘못적어서 그렇겟지만.. 어떤게 잘못된건지 감이 안오네요.

 

파일을 올리고 submit 후에 $_FILES를 찍어보면

 

Array
(
    [userfile] => Array
        (
            [name] => Array
                (
                    [0] => execlupload.xls
                )

            [type] => Array
                (
                    [0] => application/vnd.ms-excel
                )

            [tmp_name] => Array
                (
                    [0] => C:\xampp\tmp\php89FD.tmp
                )

            [error] => Array
                (
                    [0] => 0
                )

            [size] => Array
                (
                    [0] => 16896
                )

        )

)

 

이렇게 나오고 있어요

 

 

제가 본 게시물 참고해서.. 아래와같이 파일을 저장안하고 읽기만 할거면          

$file_name = $_FILES["userfile"]["tmp_name"];                        

$objPHPExcel = new PHPExcel();        

$objPHPExcel = PHPExcel_IOFactory::load($file_name);

이렇게 적으래서 바꿧는데 도무지 읽어지지가 않는데.. 도움좀 부탁드립니다..  submit시에 아래 코드를 실행합니다.

 

 

$this->load->library("PHPExcel");
		$file_name = $_FILES["userfile"]["tmp_name"];
				
		$objPHPExcel = new PHPExcel();
		$objPHPExcel = PHPExcel_IOFactory::load($file_name);
		
		$sheetsCount = $objPHPExcel->getSheetCount();
		echo $sheetsCount;  //쉬트의 갯수출력
		
		/* 쉬트별로 읽기 */
		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);
		    }
		}

 

 

 다음글 CI 에러 문의 드립니다. (3)
 이전글 CI 라이브러리 확장 (3)

댓글

kaido / 2016/11/29 09:57:50 / 추천 0

혹시 php7 이신가요?

php7 에서 phpexcel 라이브러리가 잘 작동 안한다는 이슈가 있습니다.

니로 / 2016/11/29 09:59:11 / 추천 0
kaido //아니요.. 5.4버전입니다
니로 / 2016/11/29 10:12:21 / 추천 0

        $objPHPExcel = PHPExcel_IOFactory::load($file_name);
        echo "<pre>";
        print_r($objPHPExcel);

이렇게 하니까 읽은 내용들이 나오긴하는데요

security:PHPExcel:private] => PHPExcel_DocumentSecurity Object
        (
            [_lockRevision:PHPExcel_DocumentSecurity:private] => 
            [_lockStructure:PHPExcel_DocumentSecurity:private] => 
            [_lockWindows:PHPExcel_DocumentSecurity:private] => 
            [_revisionsPassword:PHPExcel_DocumentSecurity:private] => 
            [_workbookPassword:PHPExcel_DocumentSecurity:private] => 
        )

    [_workSheetCollection:PHPExcel:private] => Array
        (
            [0] => PHPExcel_Worksheet Object
                (
                    [_parent:PHPExcel_Worksheet:private] => PHPExcel Object
 *RECURSION*
                    [_cellCollection:PHPExcel_Worksheet:private] => PHPExcel_CachedObjectStorage_Memory Object
                        (
                            [_parent:protected] => PHPExcel_Worksheet Object
 *RECURSION*
                            [_currentObject:protected] => 
                            [_currentObjectID:protected] => B10
                            [_currentCellIsDirty:protected] => 1
                            [_cellCache:protected] => Array
                                (
                                    [A1] => PHPExcel_Cell Object
                                        (
                                            [_value:PHPExcel_Cell:private] => E201610251477374373261
                                            [_calculatedValue:PHPExcel_Cell:private] => 
                                            [_dataType:PHPExcel_Cell:private] => s
                                            [_parent:PHPExcel_Cell:private] => PHPExcel_CachedObjectStorage_Memory Object
 *RECURSION*
                                            [_xfIndex:PHPExcel_Cell:private] => 0
                                            [_formulaAttributes:PHPExcel_Cell:private] => 
                                        )

                                    [B1] => PHPExcel_Cell Object
                                        (
                                            [_value:PHPExcel_Cell:private] => 123456
                                            [_calculatedValue:PHPExcel_Cell:private] => 
                                            [_dataType:PHPExcel_Cell:private] => n
                                            [_parent:PHPExcel_Cell:private] => PHPExcel_CachedObjectStorage_Memory Object
 *RECURSION*
                                            [_xfIndex:PHPExcel_Cell:private] => 0
                                            [_formulaAttributes:PHPExcel_Cell:private] => 
                                        )

                                    [A2] => PHPExcel_Cell Object
                                        (
                                            [_value:PHPExcel_Cell:private] => E201610141476429106573
                                            [_calculatedValue:PHPExcel_Cell:private] => 
                                            [_dataType:PHPExcel_Cell:private] => s
                                            [_parent:PHPExcel_Cell:private] => PHPExcel_CachedObjectStorage_Memory Object
 *RECURSION*
                                            [_xfIndex:PHPExcel_Cell:private] => 0
                                            [_formulaAttributes:PHPExcel_Cell:private] => 
                                        )

                                    [B2] => PHPExcel_Cell Object
                                        (
                                            [_value:PHPExcel_Cell:private] => 785465
                                            [_calculatedValue:PHPExcel_Cell:private] => 
                                            [_dataType:PHPExcel_Cell:private] => n
                                            [_parent:PHPExcel_Cell:private] => PHPExcel_CachedObjectStorage_Memory Object
 *RECURSION*
                                            [_xfIndex:PHPExcel_Cell:private] => 0
                                            [_formulaAttributes:PHPExcel_Cell:private] => 
                                        )

                                    [A3] => PHPExcel_Cell Object
                                        (

 

이런식으로 나오는데..

$sheetsCount = $objPHPExcel->getSheetCount();

echo $sheetsCount;

를 하면 1이 나와요..

 

우찬아빠 / 2016/11/29 10:32:28 / 추천 0

전 아래와 같이 설정한 후

$objWorksheet = $objPHPExcel->setActiveSheetIndex(0); // 적용할 Sheet를 설정 

$highestRow = $objWorksheet->getHighestRow(); // Excel의 전체 행 수
$highestColumn = $objWorksheet->getHighestColumn(); // Excel의 전체 열 수
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // 마지막 Coulmn의 index 값 A->0, AK->36

$objWorksheet->getCellByColumnAndRow($cols, $rows)->getValue() 를 써서 $cols 값과 $rows 값을 for문으로 돌려서 뽑아낸 듯 합니다