Maison  >  Article  >  développement back-end  >  PHP a écrit un lot d'envois d'importation Excel, enregistrés

PHP a écrit un lot d'envois d'importation Excel, enregistrés

不言
不言original
2018-04-16 11:16:332023parcourir

Le contenu de cet article concerne l'écriture d'une importation et d'une livraison Excel par lots en PHP. Il est enregistré et a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

function upExecel(){
        include 'data/extend/phpexcel_classes/PHPExcel.php';
        //判断是否选择了要上传的表格
        if (empty($_POST['myfile'])) {
            echo "<script>alert(您未选择表格);history.go(-1);</script>";
        }
        //获取表格的大小,限制上传表格的大小5M
        $file_size = $_FILES[&#39;myfile&#39;][&#39;size&#39;];
        if ($file_size>5*1024*1024) {
            echo "<script>alert(&#39;上传失败,上传的表格不能超过5M的大小&#39;);history.go(-1);</script>";
            exit();
        }
        //限制上传表格类型
        $file_name = $_FILES[&#39;myfile&#39;][&#39;name&#39;];
            //application/vnd.ms-excel  为xls文件类型
        $extension = strtolower( pathinfo($file_name, PATHINFO_EXTENSION) );

        //判断表格是否上传成功
        if (is_uploaded_file($_FILES[&#39;myfile&#39;][&#39;tmp_name&#39;])) {

            //接收存在缓存中的excel表格
            $filename = $_FILES[&#39;myfile&#39;][&#39;tmp_name&#39;];
            if ($extension ==&#39;xlsx&#39;) {
                $objReader = \PHPExcel_IOFactory::createReader(&#39;Excel2007&#39;);//use excel2007 for 2007 format
                $objPHPExcel = $objReader ->load($filename);
            } else if ($extension ==&#39;xls&#39;) {
                $objReader = \PHPExcel_IOFactory::createReader(&#39;Excel5&#39;);//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(&#39;company_name&#39;,$c)->value(&#39;co_id&#39;);
                if(!$express_id || !is_numeric($d)){
                    echo "<script>alert(&#39;第".$j."行快递公司名称或单号不正确&#39;);window.location.href=&#39;/admin/spell/countspellgroup&#39;;</script>";
                    break;
                }
                $res = $order_service->orderDelivery($a, $b, $c, 1, $express_id,$d,&#39;&#39;);
                // exit();
                Db::execute("insert into ns_wxmsg_spellgroup(orderid,msgtype,addtime,senttime,status) (select order_id,&#39;10&#39;,".time().",0,&#39;&#39; from ns_spellgroup where pay_time>0 and order_id=".$a.")");
                $num++;
            }
            if ($num) {
                echo "<script>alert($num.&#39;行数据添加成功!&#39;);window.location.href=&#39;/admin/spell/countspellgroup&#39;;</script>";
            }
        }
    }
.


Je viens de commencer à écrire PHP et il y a de nombreuses lacunes. Veuillez me corriger. Au départ, je voulais écrire une transaction, mais je ne l'ai pas encore terminée, alors je l'ai simplement utilisée et. je l'optimiserai plus tard

Recommandations associées :

Utiliser PHP pour écrire l'interface d'inscription

Explication détaillée de la copie lors de l'écriture en PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn