PHPは大量のExcelを書いて出荷を導入して、記録します

3643 ワード

function upExecel(){
        include 'data/extend/phpexcel_classes/PHPExcel.php';
        //             
        if (empty($_POST['myfile'])) {
            echo "alert(      );history.go(-1);";
        }
        //       ,         5M
        $file_size = $_FILES['myfile']['size'];
        if ($file_size>5*1024*1024) {
            echo "alert('    ,         5M   ');history.go(-1);";
            exit();
        }
        //        
        $file_name = $_FILES['myfile']['name'];
            //application/vnd.ms-excel   xls    
        $extension = strtolower( pathinfo($file_name, PATHINFO_EXTENSION) );

        //          
        if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {

            //        excel  
            $filename = $_FILES['myfile']['tmp_name'];
            if ($extension =='xlsx') {
                $objReader = \PHPExcel_IOFactory::createReader('Excel2007');//use excel2007 for 2007 format
                $objPHPExcel = $objReader ->load($filename);
            } else if ($extension =='xls') {
                $objReader = \PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
                $objPHPExcel = $objReader ->load($filename);
            }
            //$objPHPExcel = $objReader->load($filename); //$filename        ,        
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow(); //      
            // $highestColumn = $sheet->getHighestColumn(); //      
            //    excel  ,    ,    
            //j                    ,           
            /*if ($shipping_type == 1) {
                $res = $order_service->orderDelivery($order_id, $order_goods_id_array, $express_name, $shipping_type, $express_company_id, $express_no,$suppliercode);*/
            $order_service = new OrderService();
            $express = new NsOrderExpressCompanyModel();
            $num = 0;
            for($j=2;$j<=$highestRow;$j++)
            {
                $a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//order_id
                $b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//order_goods_id
                $c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();//express_name
                $d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();//express_no

                $express_id = $express->where('company_name',$c)->value('co_id');
                if(!$express_id || !is_numeric($d)){
                    echo "alert(' ".$j."             ');window.location.href='/admin/spell/countspellgroup';";
                    break;
                }
                $res = $order_service->orderDelivery($a, $b, $c, 1, $express_id,$d,'');
                // exit();
                Db::execute("insert into ns_wxmsg_spellgroup(orderid,msgtype,addtime,senttime,status) (select order_id,'10',".time().",0,'' from ns_spellgroup where pay_time>0 and order_id=".$a.")");
                $num++;
            }
            if ($num) {
                echo "alert($num.'       !');window.location.href='/admin/spell/countspellgroup';";
            }
        }
    }

PHPを书き始めたばかりで、足りないところがたくさんあります.