function file_to_obj_php_excel($inputFileName) { $CI =& get_instance(); PHPExcel_Shared_File::setUseUploadTempDirectory(true); if ($CI->config->item('spreadsheet_format') == 'XLSX') { $objReader = new PHPExcel_Reader_Excel2007(); } else { $objReader = new PHPExcel_Reader_CSV(); PHPExcel_Cell::setValueBinder(new TextValueBinder()); } $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load($inputFileName); return $objPHPExcel; }
/** * @param $type * @return \PHPExcel_Reader_CSV|\PHPExcel_Reader_Excel2007|\PHPExcel_Reader_Excel5|\PHPExcel_Reader_OOCalc * @throws \PHPExcel_Exception * @codeCoverageIgnore */ private static function getReader($type) { switch ($type) { case 'xls': $objReader = new \PHPExcel_Reader_Excel5(); break; case 'xlsx': $objReader = new \PHPExcel_Reader_Excel2007(); break; case 'ods': $objReader = new \PHPExcel_Reader_OOCalc(); break; case 'csv': $objReader = new \PHPExcel_Reader_CSV(); break; default: throw new \PHPExcel_Exception("Unsupported spreadsheet type {$type}"); } if ($type != 'csv') { //we don't need format $objReader->setReadDataOnly(true); } return $objReader; }
public function convert_sheet_to_array($spreadsheet, $sheet = NULL, $startRow = NULL, $save_params = false) { require_once DOC_ROOT . '/vendor/PHPExcel/Classes/PHPExcel.php'; if (!isset($this->open_spreadsheets)) { $this->open_spreadsheets = array(); } $temp = explode('.', $spreadsheet); //to avoid E_STRICT warning - only variables can be passed by reference $ext = strtolower(end($temp)); if (isset($this->open_spreadsheets['spreadsheet'])) { $objPHPExcel = $this->open_spreadsheets['spreadsheet']; } else { if ($ext == "xls") { $objReader = \PHPExcel_IOFactory::createReader('Excel5'); } elseif ($ext == "xlsx") { $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); } elseif ($ext == "zip") { $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); } elseif ($ext == "csv") { $objReader = new \PHPExcel_Reader_CSV(); } if ($ext != "csv") { $objReader->setReadDataOnly(true); } $objPHPExcel = $objReader->load($spreadsheet); $this->open_spreadsheets['spreadsheet'] = $objPHPExcel; } if (is_null($sheet)) { $objWorksheet = $objPHPExcel->getActiveSheet(); } else { if ($sheet + 1 > $objPHPExcel->getSheetCount()) { return false; } $objWorksheet = $objPHPExcel->setActiveSheetIndex($sheet); } $highestRow = $objWorksheet->getHighestRow(); // e.g. 10 $highestColumn = $objWorksheet->getHighestColumn(); // e.g 'F' $highestColumnIndex = \PHPExcel_Cell::columnIndexFromString($highestColumn); // e.g. 5 $sheet_label = array(); $sheet_value = array(); if (is_null($startRow)) { $startRow = 1; } if ($save_params) { $FILE = Functions::file_open($save_params['path'] . "/" . $save_params['worksheet_title'] . ".txt", 'w'); } for ($row = $startRow; $row <= $highestRow; ++$row) { if ($save_params) { $saved_row = array(); } for ($col = 0; $col <= $highestColumnIndex; ++$col) { $cell = self::cell_value($objWorksheet, $col, $row, $ext); if ($row == $startRow) { $sheet_label[] = $cell; if ($save_params) { $saved_row[] = $cell; } } else { $index = trim($sheet_label[$col]); if ($index) { if ($save_params) { $saved_row[] = $cell; } else { $sheet_value[$index][] = $cell; } } } } if ($save_params) { fwrite($FILE, implode("\t", $saved_row) . "\n"); } } if ($save_params) { fclose($FILE); } return $sheet_value; }
private static function prepare_reader($path_to_spreadsheet) { $info = pathinfo($path_to_spreadsheet); $extension = $info['extension']; if ($extension == "xls") { $excel_reader = \PHPExcel_IOFactory::createReader('Excel5'); } elseif ($extension == "xlsx") { $excel_reader = \PHPExcel_IOFactory::createReader('Excel2007'); } elseif ($extension == "zip") { $excel_reader = \PHPExcel_IOFactory::createReader('Excel2007'); } elseif ($extension == "csv") { $excel_reader = new \PHPExcel_Reader_CSV(); } if (!$excel_reader->canRead($path_to_spreadsheet)) { throw new \Exception('Cannot read this file'); } if ($extension != "csv") { $excel_reader->setReadDataOnly(true); } $objPHPExcel = $excel_reader->load($path_to_spreadsheet); return $objPHPExcel; }