2011-08-12 9 views
2

PHPExcel의 셀에서 데이터를 가져 오는 방법을 이해하려고하지만 잘 모르겠습니다. 나는 모든 문서를 읽고 이것을 만들었습니다.PHPExcel 리더에서 데이터를 사용하는 방법

<?php 
include('PHPExcel/Classes/PHPExcel/Reader/Excel2007.php'); 
class MyReadFilter implements PHPExcel_Reader_IReadFilter 
{ 
    public function readCell($column, $row, $worksheetName = '') { 
     // Read title row and rows 20 - 30 
     if ($row == 1 || ($row >= 20 && $row <= 30)) { 
      return true; 
     } 

     return false; 
    } 
} 
$objReader = new PHPExcel_Reader_Excel2007(); 
$objReader->setReadFilter(new MyReadFilter()); 
$objReader->setReadDataOnly(true); 
$objPHPExcel = $objReader->load("sample_mymails222.xlsx"); 
print_r($objPHPExcel); 
?> 

print_r 매우 큰 배열을 보여줍니다. $ objPHPExcel에있는 셀에서 데이터를 가져 오는 함수가 있다고 생각합니다.

그것을 어떻게?

고맙습니다.

답변

2

위의 예에서 다음 코드합니다 (PHPExcel 다운로드 패키지에 포함 된) 문서 장 4.5 더 도움이 대답을 원하는 다른 사람들을위한

+0

아, 대단히 감사합니다 사용할 수있는 파일! – Mirgorod

25

을 읽어 보시기 바랍니다, 여기에 활성을 분석하는 빠른 조각이다 워크 시트를 다차원 배열로 변환합니다 (이 예제는 OP가 만든 ReadFilter를 무시합니다).

$data = array(); 
$worksheet = $objPHPExcel->getActiveSheet(); 
foreach ($worksheet->getRowIterator() as $row) { 
    $cellIterator = $row->getCellIterator(); 
    $cellIterator->setIterateOnlyExistingCells(false); 
    foreach ($cellIterator as $cell) { 
    $data[$cell->getRow()][$cell->getColumn()] = $cell->getValue(); 
    } 
} 
var_dump($data); 

은 BTW 내가 "더 도움이 답"라고 그 이유는 나 또한 힘든 시간 (6 개 별도의 문서로 구성되어 진짜 API와 같은 참조)을 PHPExcel 문서 주위에 처음 파악을 가지고 있다는 것입니다. 스프레드 시트에서 읽는 방법을 설명 스프레드 시트 Files.doc 읽기 -

영업 그는 "모든 문서를 읽기"라고,하지만 난 나처럼, 그는 PHPExcel 사용자 설명서라는 파일을 읽어, 추측하고있다 내용을 사용하는 것은 포함하지 않습니다.

그걸 알아 내려면 PHPExcel 개발자 설명서 .doc을 읽고 4 부 (여기서 위 예제를 발견 한 곳)로 내려와야합니다.

그래, 내 잘못은 철저하지는 않지만 분명히 이것은 반복되는 문제입니다. :-)

+0

작업 코드 예제에 감사드립니다! –

+0

생산 배포판의/Documentation/API 디렉토리에 전체 API 참조가 있습니다 ... 디렉토리 이름에도 불구하고 얼마나 많은 사람들이 그 존재를 완전히 잊어 버리고 놀랍습니다. –

+0

@MarkBaker PHPExcel은 우수합니다! 나는 아무 것도 칭찬 할 수 없다! 나는 단지 sugestion을 줄 것입니다. (그리고 정말로 당신이 그것을 할 필요가 없다는 것을 알고 있습니다.) 사람들이 PHPExcel 문서가 보여지는 방식을 찾기가 쉽지 않다고 생각합니다. Codeigniter 's 사용자 가이드는 codeigniter에 관한 모든 것을 찾을 수있는 크고 깨끗하고 쉬운 장소에 대한 최고의 참조 정보 중 하나입니다. 정보를 검색 할 수있는 방법, 예제 등이 있습니다. PHPExcel에서 검색을 수행하는 것이 더 힘들며, 그러나 아무것도 정말로 어려운. 여기에 거의 모든 질문이 있습니다. 코드 샘플을 사용해 주셔서 감사합니다. – Periback

3

읽기위한 엑셀은이

require_once('PHPExcel.php'); 
 
$input_file_type = PHPExcel_IOFactory::identify($excel_file); 
 
$obj_reader = PHPExcel_IOFactory::createReader($input_file_type); 
 
$obj_reader->setReadDataOnly(true); 
 
     
 
$objPHPExcel = $obj_reader->load($excel_file); 
 
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0); 
 
$highest_row = $objWorksheet->getHighestRow(); 
 
$highest_col = $objWorksheet->getHighestColumn(); 
 
//$highest_col_index = PHPExcel_Cell::columnIndexFromString($highest_col); 
 
     
 
// start $row from 2, if you want to skip header 
 
for ($counter = 2; $counter <= $highest_row; $counter++) 
 
{ 
 
    $row = $objWorksheet->rangeToArray('A'.$counter.':'.$highest_col.$counter); 
 
    $row = reset($row);    
 
}

+0

나는 당신이 이것을 올린 지 오래 되었네. 그러나 나는 어떤 도움을 찾을 수 없습니다. $ row에 데이터를 어떻게 인쇄합니까? 나는 항상 Undefined Offset을 얻는다. 일부 도움을주십시오 = \ – PlayHardGoPro

+1

코드를 보내주십시오 –

+0

정말 고마워요. 난 그냥 문제를 해결, document.doc 몇 가지 설명과 함께 발견 ... 고마워요! <3 – PlayHardGoPro

관련 문제