Solución:
Ok … los nombres son engañosos. setActiveSheetIndex también hace un get, así que la solución fue esta
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("cmt_school_data.xlsx");
$objWorksheet = $objPHPExcel->setActiveSheetIndex(1);
//objWorksheet = $objPHPExcel->getActiveSheet();
echo '<table border=1>' . "n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo '<tr>' . "n";
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // This loops all cells,
// even if it is not set.
// By default, only cells
// that are set will be
// iterated.
foreach ($cellIterator as $cell) {
echo '<td>' . $cell->getValue() . '</td>' . "n";
}
echo '</tr>' . "n";
}
echo '</table>' . "n";
<?php
/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . '../../../Classes/');
/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';
$inputFileType="Excel5";
// $inputFileType="Excel2007";
// $inputFileType="Excel2003XML";
// $inputFileType="OOCalc";
// $inputFileType="Gnumeric";
$inputFileName="./sampleData/example1.xls";
echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'<br />';
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
echo 'Loading all WorkSheets<br />';
$objReader->setLoadAllSheets();
$objPHPExcel = $objReader->load($inputFileName);
echo '<hr />';
echo $objPHPExcel->getSheetCount(),' worksheet',(($objPHPExcel->getSheetCount() == 1) ? '' : 's'),' loaded<br /><br />';
$loadedSheetNames = $objPHPExcel->getSheetNames();
foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
echo **$sheetIndex**,' -> ',$loadedSheetName,'<br />';
$sheetData = $objPHPExcel->**getSheet**(**$sheetIndex**)->toArray(null,true,true,true);
var_dump($sheetData);
}?>
Sé que ha sido demasiado tarde para la respuesta. Pero encuentro la solución de la siguiente manera.
//load library - EXCEL
$this->load->library('excel');
$objPHPExcel = PHPExcel_IOFactory::load('./folder/exceldata.xls');
//Get How Many Sheets in your Excel file.
echo $objPHPExcel->getSheetCount();
Luego, para acceder a una hoja por su índice, use el método getSheet (). Tenga en cuenta que las hojas están indexadas desde 0. p. Ej.
//Retrieve the **1st 'tab' worksheet** e.g. called 'Sheet 1'
$worksheet = $objPHPExcel->getSheet(0);
Entonces, en su caso, si desea leer solo la Hoja 2,
$worksheet = $objPHPExcel->getSheet(1);
O para leer todas las hojas de su archivo de Excel, debe usar foreach loop como se muestra a continuación.
foreach($objPHPExcel->getWorksheetIterator() as $worksheet)
{
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
//echo $highestRow;
//echo $highestColumn;
//die();
for($row=2; $row<=$highestRow; $row++)
{
$column1 = $worksheet->getCellByColumnAndRow(0, $row)->getValue();
$column2= $worksheet->getCellByColumnAndRow(1, $row)->getValue();
$finaldata[] = array(
'data1' => trim($column1),
'data2' => trim($column2),
);
}
}
/*echo "<pre>";
echo count($finaldata);
print_r($finaldata);
die();*/
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)