메뉴 건너뛰기

프로그램언어

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

기존 엑셀 2003까지 버전은 확장자가 xls 로 생성되며 한시트에 최대 65,535 라인까지 처리할 수 있다.

그 이상의 행을 처리하려면 엑셀 2007 이상의 버전에서 xlsx 파일로 생성해야 한다. (100만 라인까지 가능)


기본 65,535라인을 넘는 데이터를 처리해야 할 경우 PHPExcel 클래스를 이용해 간단히 처리할 수 있다.

참고로 서버에 zip 라이브러리가 설치되어 있어야 한다.


먼저 PHPExcel 클래스를 다운로드 받자

http://www.codeplex.com/PHPExcel 에 방문하여 최신 버전을 내려받는다.


현재 기준으로 1.7.9 버전이 최신이다.

파일을 내려 받으면 PHPExcel_1.7.9_doc.zip 라는 파일이 받아진다.

압축을 풀어 서버에 업로드 한다. 


나의 경우에는 서버 계정의 _lib 디렉토리에 업로드 하고 디렉토리명을 PHPExcel 로 설정했다.


POST로 엑셀파일을 업로드 하는 폼 페이지는 생략 하겠다.

아래는 폼 페이지에서 파일을 업로드 하면 실행하는 파일이다.

(POST 로 날라오는 파일 폼 이름이  "upfile" 이라 정하면)


<?php

include $_SERVER["DOCUMENT_ROOT"]."/_lib/PHPExcel/Classes/PHPExcel.php";

$UpFile = $_FILES["upfile"];

$UpFileName = $UpFile["name"];


$UpFilePathInfo = pathinfo($UpFileName);
$UpFileExt = strtolower($UpFilePathInfo["extension"]);

if($UpFileExt != "xls" && $UpFileExt != "xlsx") {
echo "엑셀파일만 업로드 가능합니다. (xls, xlsx 확장자의 파일포멧)";
exit;
}

//-- 읽을 범위 필터 설정 (아래는 A열만 읽어오도록 설정함  => 속도를 중가시키기 위해)
class MyReadFilter implements PHPExcel_Reader_IReadFilter
{
public function readCell($column, $row, $worksheetName = '') {
// Read rows 1 to 7 and columns A to E only
if (in_array($column,range('A','A'))) {
return true;
}
return false;
}
}
$filterSubset = new MyReadFilter();

//업로드된 엑셀파일을 서버의 지정된 곳에 옮기기 위해 경로 적절히 설정
$upload_path = $_SERVER["DOCUMENT_ROOT"]."/Uploads/Excel_".date("Ymd");
$upfile_path = $upload_path."/".date("Ymd_His")."_".$UpFileName;
if(is_uploaded_file($UpFile["tmp_name"])) {

if(!move_uploaded_file($UpFile["tmp_name"],$upfile_path)) {
echo "업로드된 파일을 옮기는 중 에러가 발생했습니다.";
exit;
}

//파일 타입 설정 (확자자에 따른 구분)
$inputFileType = 'Excel2007';
if($UpFileExt == "xls") {
$inputFileType = 'Excel5';
}

//엑셀리더 초기화
$objReader = PHPExcel_IOFactory::createReader($inputFileType);

//데이터만 읽기(서식을 모두 무시해서 속도 증가 시킴)
$objReader->setReadDataOnly(true);

//범위 지정(위에 작성한 범위필터 적용)
$objReader->setReadFilter($filterSubset);

//업로드된 엑셀 파일 읽기
$objPHPExcel = $objReader->load($upfile_path);

//첫번째 시트로 고정
$objPHPExcel->setActiveSheetIndex(0);

//고정된 시트 로드
$objWorksheet = $objPHPExcel->getActiveSheet();

  //시트의 지정된 범위 데이터를 모두 읽어 배열로 저장
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$total_rows = count($sheetData);

foreach($sheetData as $rows) {

$fieldData = $rows["A"]; //A열값을 가져온다.
    /* 데이터 처리 */

}

}
.
.
?>


위 데이터 처리 부분에 원하는 처리를 하면 되겠다.

데이터를 100만건까지 처리 하다보니 서버의 부담이 커서 데이터 시트 범위를 정하고, 서식을 모두 버리고 데이터만 처리하도록 세팅했다.


  1. No Image 26Mar
    by
    2021/03/26 Views 832 

    PHP 쉘 스크립트

  2. No Image 12Jan
    by
    2023/01/12 Views 367 

    php 암호화 복호화 , 간단한 암호화

  3. No Image 12Apr
    by
    2014/04/12 Views 20395 

    PHP 에서의 소켓(Socket) 통신

  4. No Image 07Mar
    by
    2017/03/07 Views 29790 

    php 엑셀 다운로드 구현

  5. No Image 24Jun
    by
    2019/06/24 Views 1946 

    PHP 외부 XML 파싱 하기

  6. No Image 12Jan
    by
    2023/01/12 Views 212 

    PHP 이미지 리사이즈 함수 imagecopyresized

  7. No Image 12Jan
    by
    2023/01/12 Views 259 

    php 이미지 리사이징 image resizing

  8. No Image 19Jul
    by
    2018/07/19 Views 5455 

    PHP 특정 디렉토리에 있는 파일 갯수 구하기

  9. No Image 14Apr
    by
    2015/04/14 Views 22401 

    PHP 파일 다루기

  10. No Image 27Feb
    by
    2014/02/27 Views 19794 

    php 파일 다운로드 구현

  11. No Image 12Apr
    by
    2014/04/12 Views 21703 

    php 파일 다운로드 구현

  12. No Image 12Jan
    by
    2023/01/12 Views 229 

    PHP 파일 업로드 FORM 처리

  13. No Image 27Feb
    by
    2014/02/27 Views 20234 

    php 파일 확장자

  14. No Image 04Jul
    by
    2018/07/04 Views 5811 

    PHP 파일크기 단위 붙이기 (용량 변환) file size conversion source code

  15. No Image 12Jan
    by
    2023/01/12 Views 236 

    PHP 하위 디렉토리 포함 디렉토리 리스트 출력

  16. No Image 27Oct
    by
    2018/10/27 Views 3790 

    PHP 확장 모듈을 이용한 C 라이브러리 사용

  17. No Image 04Jul
    by
    2018/07/04 Views 4057 

    PHP 휴대폰번호 짜르기 (preg_replace) "-" 넣기. 형식바꾸기

  18. No Image 13Apr
    by
    2017/04/13 Views 19505 

    PHP, $_SERVER 변수

  19. No Image 08Jan
    by
    2019/01/08 Views 1429 

    php/asp에서 가상번호 부여와 가상번호를 거꾸로 적용

  20. No Image 06Mar
    by 조쉬
    2017/03/06 Views 21695 

    PHPExcel 클래스를 이용해 Excel 2007~2010 의 xlsx 파일 읽기 (100만 행 까지)

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved