Heim >Backend-Entwicklung >PHP-Tutorial >PHP hat einen Stapel Excel-Importsendungen geschrieben und aufgezeichnet
Der Inhalt dieses Artikels handelt vom Schreiben eines Batch-Excel-Imports und der Bereitstellung in PHP. Jetzt kann ich ihn mit allen teilen, die ihn benötigen
function upExecel(){ include 'data/extend/phpexcel_classes/PHPExcel.php'; //判断是否选择了要上传的表格 if (empty($_POST['myfile'])) { echo "<script>alert(您未选择表格);history.go(-1);</script>"; } //获取表格的大小,限制上传表格的大小5M $file_size = $_FILES['myfile']['size']; if ($file_size>5*1024*1024) { echo "<script>alert('上传失败,上传的表格不能超过5M的大小');history.go(-1);</script>"; 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 "<script>alert('第".$j."行快递公司名称或单号不正确');window.location.href='/admin/spell/countspellgroup';</script>"; 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 "<script>alert($num.'行数据添加成功!');window.location.href='/admin/spell/countspellgroup';</script>"; } } }
Ich habe gerade angefangen, PHP zu schreiben, und es gibt viele Mängel. Ich wollte ursprünglich eine Transaktion schreiben, habe sie aber noch nicht fertiggestellt, also habe ich sie einfach verwendet werde es später optimieren
Verwandte Empfehlungen:
Verwenden Sie PHP, um die Registrierungsschnittstelle zu schreiben
Detaillierte Erklärung des Kopierens beim Schreiben in PHP
Das obige ist der detaillierte Inhalt vonPHP hat einen Stapel Excel-Importsendungen geschrieben und aufgezeichnet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!