这篇文章介绍的内容是关于PHP写了个批量Excel导入发货,记录下,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
function upExecel(){
include 'data/extend/phpexcel_classes/PHPExcel.php';
//判断是否选择了要上传的表格
if (empty($_POST['myfile'])) {
echo "";
}
//获取表格的大小,限制上传表格的大小5M
$file_size = $_FILES['myfile']['size'];
if ($file_size>5*1024*1024) {
echo "";
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 "";
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 "";
}
}
}刚开始写php,有很多不足的地方,请多多指正,本来想写个事务,暂时没弄好,就这样先用了,后续在优化
相关推荐:
新普客户管理系统,小巧,方便,实用,主要功能有: 1 客户 2 联系人 3 联系活动 4 供应商 5 产品 6 费用 7 销售记录 8 竞争对手 9 图表分析 10 基础资料 11 数据备份 12 个人信息 v3.0新增: 1、增加了“业务日记”功能; 2、增加了“批量从Excel导入客户信息”功能;










