Я знаю, как читать мою таблицу xlsx и прокручивать первый лист.
Он имеет 5 листов, и у меня возникают проблемы с доступом к любому другому, кроме первого.
Вот код, который я использую, который был прямо из документации. Вы можете видеть, что я пытался использовать setActiveSheet, но это забросило ошибку Call to undefined method PHPExcel::setActiveSheet()
.
Код :
$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";
Ок … имена обманывают. setActiveSheetIndex также делает так, что это решение было
$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); }?>