mickmackusa

PHPExcel - Row Validation

May 25th, 2017
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.51 KB | None | 0 0
  1. <?php
  2. $reader = PHPExcel_IOFactory::createReader('Excel2007');
  3. $reader->setReadDataOnly(true);
  4. $file = isset($_FILES["uploadexcel"]['tmp_name']) ? $_FILES["uploadexcel"]['tmp_name'] : '';
  5. $objPHPExcel = $reader->load($file);
  6. $objWorksheet = $objPHPExcel->getActiveSheet();
  7. $header=true;
  8. if ($header) {
  9.     $highestRow = $objWorksheet->getHighestRow();
  10.     $highestColumn = $objWorksheet->getHighestColumn();
  11.     $headingsArray = $objWorksheet->rangeToArray('A1:'.$highestColumn.'1',null,true,true,true);
  12.     $headingsArray = $headingsArray[1];
  13.     $r = -1;
  14.     $namedDataArray = array();
  15. /**/$required=['category_1','language','f_n','publishers','cost','cost_currency'];
  16.     for ($row = 2; $row <= $highestRow; ++$row) {
  17.         $dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null,true,true,true);
  18.         if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
  19.             ++$r;
  20. /**/        $row_check[$r]=[];
  21.             foreach ($headingsArray as $columnKey => $columnHeading) {
  22. /**/            if(in_array($columnHeading,$required) && is_null($dataRow[$row][$columnKey])){
  23. /**/                $row_check[$r][]=$columnHeading;
  24. /**/            }
  25.                 $namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey];
  26.             }
  27.         }
  28.     }
  29. } else {
  30.     //excel sheet with no header
  31.     $namedDataArray = $objWorksheet->toArray(null, true, true, true);
  32. }
  33. echo '<pre>';
  34. /**/var_export($row_check);
  35.     // a row that passes will have an empty subarray (e.g. keys 1,8,10,16)
  36.     // otherwise, the subarray will list all failing cells by columnname
  37. print_r($namedDataArray);
  38. exit;
  39. ?>
Advertisement
Add Comment
Please, Sign In to add comment