2014-04-15 2 views
13

내가 XLS 문서에서 하나의 시트를 읽으려고하고를 읽고 나는이있다 :이 파일의 모든 시트를 읽고은 특정 시트

$objPHPExcel = $objReader->load('daily/' . $fisierInbound); 
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0); 
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 

      $worksheetTitle  = $worksheet->getTitle(); 
      $highestRow   = $worksheet->getHighestRow(); // e.g. 10 
      $highestColumn  = $worksheet->getHighestColumn(); // e.g 'F' 
      $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
      $dataCalls = $worksheet->getCellByColumnAndRow(2, 2)->getValue(); 
      $dataSubstr = substr($dataCalls, 53); 


     } 

문제가된다.

아이디어가 있으십니까? /Documentation 폴더에 PHPExcel User Documentation - Reading Spreadsheet Files 문서에 설명 된 바와 같이

+2

당신은 each' 워크 시트에 대한 iteraration을'이있다. 그의 모든 것을 읽으려고하는 것은 명백한 일입니다! PHPExcel의 클래스에서'getActiveSheet()'메소드를 호출해야합니다. –

+0

나는 그럭저럭 알 수 있었다. 감사 ! – ardb

+0

'getHighestRow()'는'getHighestDataRow()'로 대체되어야합니다; 열 함수에 대해 동일 ... – Raptor

답변

19

(5.2 "파일에서 읽기 전용 명명 된 워크 시트"라는.) : 당신은 당신이 읽고 싶은 시트의 이름을 알고있는 경우

. 당신이 사전에 워크 시트의 이름을 모르는 경우

$inputFileType = 'Excel5'; 
$inputFileName = './sampleData/example1.xls'; 
$sheetname = 'Data Sheet #2'; 

/** Create a new Reader of the type defined in $inputFileType **/ 
$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
/** Advise the Reader of which WorkSheets we want to load **/ 
$objReader->setLoadSheetsOnly($sheetname); 
/** Load $inputFileName to a PHPExcel Object **/ 
$objPHPExcel = $objReader->load($inputFileName); 

, 당신은 파일

$inputFileType = 'Excel5'; 
$inputFileName = './sampleData/example1.xls'; 

/** Create a new Reader of the type defined in $inputFileType **/ 
$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
/** Read the list of worksheet names and select the one that we want to load **/ 
$worksheetList = $objReader->listWorksheetNames($inputFileName) 
$sheetname = $worksheetList[0]; 

/** Advise the Reader of which WorkSheets we want to load **/ 
$objReader->setLoadSheetsOnly($sheetname); 
/** Load $inputFileName to a PHPExcel Object **/ 
$objPHPExcel = $objReader->load($inputFileName); 
+0

감사합니다 @ 마크. – black

9

를로드하기 전에 모든 워크 시트의 목록을 얻을 수 있습니다 당신은 워크 시트의 목록을 얻는 것보다 쉽게 ​​할 수 이름 :

$objPHPExcel->setActiveSheetIndex(2); 
$worksheet = $objPHPExcel->getActiveSheet(); 

로드 워크 시트 # 2 (세 번째).

+0

하지만 사용자가 시트 색인을 변경하면 어떻게됩니까? –

4

이 고민 여전히 사람들을위한 가장 쉬운 방법 -

//include library 
include('path/to/PHPExcel/IOFactory.php'); 

//load the file 
$objPHPExcel = PHPExcel_IOFactory::load('your/path/for/excel/file'); 

//get the worksheet of your choice by its name 
$worksheet = $objPHPExcel->getSheetByName('Name of sheet'); 

#and your work goes here...