phpspreadsheet - ¿Cómo leo la hoja dos de un archivo xlsx con PHPExcel?
phpexcel php 7 (2)
Sé cómo leer mi hoja de cálculo xlsx y recorrer la primera hoja.
Tiene 5 hojas y tengo problemas para llegar a otra que no sea la primera.
Aquí está el código que estoy usando, que fue directamente de la documentación. Puede ver que intenté utilizar setActiveSheet, pero que arrojó el error Call to undefined method PHPExcel::setActiveSheet()
.
Código :
$objReader = PHPExcel_IOFactory::createReader(''Excel2007'');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("cmt_school_data.xlsx");
//$objPHPExcel->setActiveSheet(1);
$objWorksheet = $objPHPExcel->getActiveSheet();
echo ''<table border=1>'' . "/n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo ''<tr>'' . "/n";
$cellIterator = $row->getCellIterator();
// This loops all cells, even if it is not set.
// By default, only cells that are set will be iterated.
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
echo ''<td>'' . $cell->getValue() . ''</td>'' . "/n";
}
echo ''</tr>'' . "/n";
}
echo ''</table>'' . "/n";
Ok ... los nombres son engañosos. setActiveSheetIndex también hace un get así que la solución fue la siguiente
$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);
}?>