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;
 }
Example #3
0
 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;
 }
Example #4
0
 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;
 }