Advertisement
AndreyKlipikov

Price to Excel Actions (Yii)

Jan 30th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.05 KB | None | 0 0
  1.     public function actionDownloadPrice()
  2.     {
  3.         $objPHPExcel = new PHPExcel();
  4.        
  5.         $objPHPExcel->getProperties()
  6.             ->setCreator("Komspec")
  7.             ->setLastModifiedBy("Komspec")
  8.             ->setTitle("Komspec Price")
  9.             ->setSubject("Komspec Price")
  10.             ->setDescription("Komspec Price")
  11.             ->setKeywords("komspec price")
  12.             ->setCategory("Komspec Price");
  13.        
  14.         $objPHPExcel->setActiveSheetIndex(0)
  15.             ->setCellValue('A1', 'ID')
  16.             ->setCellValue('B1', 'Категория')
  17.             ->setCellValue('C1', 'Название')
  18.             ->setCellValue('D1', 'Цена в Казани')
  19.             ->setCellValue('E1', 'Цена в Самаре')
  20.             ->setCellValue('F1', 'Цена в Нижнем Новгороде')
  21.             ->setCellValue('G1', 'Цена в Ульяновске')
  22.             ->setCellValue('H1', 'Цена в Саранске')
  23.             ->setCellValue('I1', 'Цена в Чебоксарах')
  24.             ->setCellValue('J1', 'Цена в Тольятти')
  25.             ->setCellValue('K1', 'Цена в другом городе');
  26.                    
  27.         $objPHPExcel->getActiveSheet()->setTitle('Прайс');
  28.        
  29.         $counter = 2;
  30.         $cats = array();
  31.         $categories = Categories::model()->findAll();
  32.        
  33.         foreach($categories as $item)
  34.             $cats[$item->id] = $item->name;
  35.        
  36.         $goods = Goods::model()->findAll();
  37.        
  38.         foreach($goods as $item)
  39.         {
  40.             $objPHPExcel->setActiveSheetIndex(0)
  41.                 ->setCellValue('A' . $counter, $item->id)
  42.                 ->setCellValue('B' . $counter, $cats[$item->category_id])
  43.                 ->setCellValue('C' . $counter, $item->name)
  44.                 ->setCellValue('D' . $counter, $item->price1)
  45.                 ->setCellValue('E' . $counter, $item->price2)
  46.                 ->setCellValue('F' . $counter, $item->price3)
  47.                 ->setCellValue('G' . $counter, $item->price4)
  48.                 ->setCellValue('H' . $counter, $item->price5)
  49.                 ->setCellValue('I' . $counter, $item->price6)
  50.                 ->setCellValue('J' . $counter, $item->price8)
  51.                 ->setCellValue('K' . $counter, $item->price9);
  52.             $counter++;
  53.         }
  54.        
  55.         $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
  56.         $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
  57.         $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
  58.         $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
  59.         $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setAutoSize(true);
  60.         $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setAutoSize(true);
  61.         $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setAutoSize(true);
  62.         $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setAutoSize(true);
  63.         $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setAutoSize(true);
  64.         $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setAutoSize(true);
  65.         $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setAutoSize(true);
  66.        
  67.         header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  68.         header('Content-Disposition: attachment;filename="komspec_price_' . date("d_m_Y") . '.xlsx');
  69.         header('Cache-Control: max-age=0');
  70.         header('Cache-Control: max-age=1');
  71.  
  72.         header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  73.         header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
  74.         header ('Cache-Control: cache, must-revalidate');
  75.         header ('Pragma: public');
  76.  
  77.         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
  78.         $objWriter->save('php://output');
  79.         exit;
  80.     }
  81.    
  82.     public function actionUploadPrice()
  83.     {
  84.         if (isset($_FILES['price']))
  85.         {
  86.             $filename = time() . $_FILES['price']['name'];
  87.            
  88.             if (move_uploaded_file($_FILES['price']['tmp_name'], Yii::getPathOfAlias('webroot') . '/upload/excel/' . $filename))
  89.             {
  90.                 $list = array();
  91.                 $goods = Goods::model()->findAll();
  92.                
  93.                 foreach($goods as $item)
  94.                 {
  95.                     $list[$item->id] = array('price1'=>$item->price1, 'price2'=>$item->price2, 'price3'=>$item->price3, 'price4'=>$item->price4, 'price5'=>$item->price5, 'price6'=>$item->price6, 'price8'=>$item->price8, 'price9'=>$item->price9);
  96.                 }
  97.                
  98.                 $objPHPExcel = PHPExcel_IOFactory::load(Yii::getPathOfAlias('webroot') . '/upload/excel/' . $filename);
  99.                 $data = $objPHPExcel->getActiveSheet()->toArray();
  100.                
  101.                 for($i = 1; $i < count($data); $i++)
  102.                 {
  103.                     if ($data[$i][3] != $list[$data[$i][0]]['price1'] || $data[$i][4] != $list[$data[$i][0]]['price2'] || $data[$i][5] != $list[$data[$i][0]]['price3'] || $data[$i][6] != $list[$data[$i][0]]['price4'] || $data[$i][7] != $list[$data[$i][0]]['price5'] || $data[$i][8] != $list[$data[$i][0]]['price6'] || $data[$i][9] != $list[$data[$i][0]]['price8'] || $data[$i][10] != $list[$data[$i][0]]['price9'])
  104.                     {
  105.                         $good = Goods::model()->findByPk($data[$i][0]);
  106.                         $good->price1 = $data[$i][3];
  107.                         $good->price2 = $data[$i][4];
  108.                         $good->price3 = $data[$i][5];
  109.                         $good->price4 = $data[$i][6];
  110.                         $good->price5 = $data[$i][7];
  111.                         $good->price6 = $data[$i][8];
  112.                         $good->price8 = $data[$i][9];
  113.                         $good->price9 = $data[$i][10];
  114.                         $good->save(false);
  115.                     }
  116.                 }
  117.             }
  118.         }
  119.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement