2014-04-15 34 views
13

Bir xls belgeden sadece bir sayfasını okumaya çalışıyorum Oku ve bu var: o dosyanın tüm sayfaları okursadece belirli sayfasını

$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); 


     } 

sorun olduğunu.

Herhangi bir fikrin var mı? /Documentation klasöründe PHPExcel User Documentation - Reading Spreadsheet Files belgesinde anlatıldığı gibi

+2

Sen each' çalışma sayfası için iteraration 'var. Onların hepsini okuyacağı belli ki belli! PHPExcel'in sınıfından 'getActiveSheet() 'yöntemini çağırmanız gerekir. –

+0

Öğrenmeyi başardım. Teşekkürler ! – ardb

+0

'getHighestRow()', 'getHighestDataRow()' ile değiştirilmelidir; Sütun işlevi için aynı ... – Raptor

cevap

19

(bölüm 5.2 "Bir Dosyadan Okuma Sadece Named ÇalışmaSayfaları" başlıklı.): Eğer Okumak istediğiniz sayfanın adını biliyorsanız

. Önceden çalışma sayfasının adını bilmiyorsanız

$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); 

, dosyayı

$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

teşekkürler @Mark. – black

9

yüklemeden önce tüm çalışma sayfalarının bir listesini alabilirsiniz Sen çalışma listesini almak daha kolay yapabilir adlar:

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

Yük # 2 (üçüncü) çalışma sayfası.

+0

Ancak kullanıcı sayfa dizinlerini değiştirirse ne olur? –

4

bununla mücadele hala olanlar için bir kolay yolu -

//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... 
İlgili konular