2014-03-24 4 views
0

PHPExcel 버전 1.7.9를 사용하고 있습니다. 나는 시간이 0.0408에서 0.0272 초
업로드 파일 Pageload의 출력을 생성PHPExcel은 15 초 넘게 파일을로드합니다.


시작 Pageload을 촬영 에코 위

 $temp_name = $_FILES['upload']['tmp_name']; 
     $fname = $_FILES['upload']['name']; 
     $transfer = move_uploaded_file($temp_name,TEMP_DIR.$fname); 
     $file_location = TEMP_DIR.$fname; 
     $inputFileType = PHPExcel_IOFactory::identify($file_location); 
     $objReader = PHPExcel_IOFactory::createReader($inputFileType); 
     $objReader->setReadDataOnly(true); 
     $objPHPExcel = $objReader->load($file_location); 

코드의 각 라인 : 여기

내 PHP 코드 초
파일로드 시간을 0.0612 초로 지정하십시오.
리더 페이지 생성 부하를 0.0613 초로 지정하십시오..0613 초
파일에 63,210
설정 데이터 읽기 OnlyPageload은 17.3884 초

는 내 질문에, 왜

$objPHPExcel = $objReader->load($file_location); 

로드 17.3884 초 정도 걸릴 수 있습니다에 Pageload 읽어?

기타 정보 :

  • MS Excel 2007을
  • 크기 3백84킬로바이트는
  • 최대 열
  • - AF는
  • 최대 행 = 184 행

답변

1

같은 이유는 phpexcel 대규모 필요한 이유 디스크에 큰 파일을 쓸 때의 메모리 양 ...

콘텐츠, 수식, 조건부 마크 업, 마크 업, 참조, 셀 크기 등 다양한 Excel 문서에 많은 데이터가 존재합니다 ...

각 셀마다 올바르게 분석, 해석 및 일치되어야합니다 phpexcel 내의 해당 값.

가장 많이 소비되고 메모리 집약적 인 변환 과정입니다.

데이터가 32 x 184 = 5888 개, 즉 표 셀당 0.002953 초, 즉 표 셀에 대해 2.9ms가 해석되어야합니다.

모든 데이터 크 런칭과 변수 발생을 고려하면 매우 빠르다.

정말로 원하는 경우 자신의 c (++) 라이브러리를 작성하고 PHP로로드해야합니다. 그러면 실제 속도 향상을 얻을 수 있습니다.

+0

PHPExcel에 대한 각 셀 반복 없음. 나는 이것을 확인할 수있다. –

+0

그 말을 되 실 수 있습니까? 나는 당신이 무엇을 말하려고하는지 이해하지 못한다. ... – Tschallacka

+0

5888 세포를 반복 할 때 5 초 미만이 걸렸다는 것을 의미한다. 나는 강력하게 $ objectReader-> load ($ filename)이 범인이라고 의심한다. –

관련 문제