While I am reading ods files (xls and xlsx in order) using the PHPExcel class and two cells together and contain the same data, the second cell is empty, is this an error? Here is my code:
<?php set_include_path(get_include_path() . PATH_SEPARATOR . '../../Librerias/phpexcel/Classes/'); include 'PHPExcel/IOFactory.php'; $input_fileName = dirname(__FILE__) . '/bug.ods'; $input_file_type = PHPExcel_IOFactory::identify($input_fileName); $reader = PHPExcel_IOFactory::createReader($input_file_type); $reader->setReadDataOnly(true); $objPHPExcel = $reader->load($input_fileName); $objPHPExcel->setActiveSheetIndex(0); $rowIterator = $objPHPExcel->getActiveSheet()->getRowIterator(); $array_data = array(); foreach($rowIterator as $row){ $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $rowIndex = $row->getRowIndex (); foreach ($cellIterator as $cell) { $array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue(); } } echo '<pre>' ; print_r($array_data); echo '</pre>' ;
? >
Here is the content in bug.ods
| A | B | C | D | E | F ----------------------------------------------- 1 | 1 | 1 | 2 | 2 | 3 | 3 2 | 2 | 2 | 1 | 1 | 3 | 3 3 | 3 | 3 | 1 | 1 | 2 | 2 4 | a | a | b | b | c | c 5 | b | b | a | a | c | c 6 | c | c | a | a | b | b
... and here is the output of print_r.
Array ( [1] => Array ( [A] => 1 [B] => [C] => 2 [D] => [E] => 3 ) [2] => Array ( [A] => 2 [B] => [C] => 1 [D] => [E] => 3 ) [3] => Array ( [A] => 3 [B] => [C] => 1 [D] => [E] => 2 ) [4] => Array ( [A] => a [B] => [C] => b [D] => [E] => c ) [5] => Array ( [A] => b [B] => [C] => a [D] => [E] => c ) [6] => Array ( [A] => c [B] => [C] => a [D] => [E] => b ) )
Am I doing something wrong? This is mistake?
Some idea?
source share