PHP程序中导入excel表格少了一条数据,比如上传了8条,但是数据库里却只有7条,少了第一条数据,怎么解决呢
我把判断上传是否成功注释了,if ($_FILES ['file_stu'] != null) {
/* $tmp_file = $_FILES ['file_stu'] ['tmp_name'];
$file_Arrs = explode ( ".", $_FILES ['file_stu'] ['name'] );
$file_type = $file_Arrs [1];
// 判别是不是.xls文件,判别是不是excel文件
if (strtolower ( $file_type ) != "xls" && strtolower ( $file_type ) != "xlsx") {
echo "<script>alert('不是Excel文件,请重新上传!');location.href='readExcel.php'</script>";
}
// 设置上传路径
$savePath = __DIR__ . "/upload/";
// 以时间来命名上传的文件
$file_name = $file_Arrs [0] . date ( '_Y-m-d H:i:s' ) . "." . $file_type;
// 是否上传成功
if (! move_uploaded_file ( $tmp_file, $savePath . $file_name )) {
echo "<script>alert('上传失败!');location.href='readExcel.php'</script>";
}*/
// 设置以Excel5格式(Excel97-2003工作簿)
$reader = PHPExcel_IOFactory::createReader ( 'Excel5' );
$reader->setReadDataOnly ( true );
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array (
' memoryCacheSize ' => '1024MB'
);
PHPExcel_Settings::setCacheStorageMethod ( $cacheMethod, $cacheSettings );
$PHPExcel = new PHPExcel ();
// 载入excel文件
// $PHPExcel = $reader->load ( $savePath . $file_name );
$PHPExcel = $reader->load ("D:/WWW/FX_ZKDZ_W/01_develop/yunmu7913/upload/111_2016-08-21 14:47:42.xlsx");
echo "
";print_r($PHPExcel);
// 读取第一個工作表$sheet = $PHPExcel->getSheet ( 0 );
echo "
";print_r($sheet);exit;
// 取得总行数
$highestRow = $sheet->getHighestRow ();// 取得总列数 $highestColumm = $sheet->getHighestColumn (); $datetime = date ( "Y-m-d H:i:s", time () ); $mysql->query ( "truncate orderdata" ); $sqlHead = "insert into `orderdata` values"; $sqlOther = ""; // 循环读取每个单元格的数据, 行数是以第1行开始 for($row = 3; $row <= $highestRow; $row ++) { $flag=0; foreach ($PHPExcel as $k=>$v){ if($v['uid']==$flag){ $flag=1; } } // 用户ID $uid = $sheet->getCell ( "B" . $row )->getValue (); // 总订单数 $totalOrder = $sheet->getCell ( "C" . $row )->getValue (); // 未分配 $notAllocated = $sheet->getCell ( "D" . $row )->getValue (); // 已下单 $single = $sheet->getCell ( "E" . $row )->getValue (); // 取消 $concle = $sheet->getCell ( "F" . $row )->getValue (); // 无效 $invalid = $sheet->getCell ( "G" . $row )->getValue (); // 跟踪中 $tracking = $sheet->getCell ( "H" . $row )->getValue (); // 已确认 $confirmed = $sheet->getCell ( "I" . $row )->getValue (); // 待发货 $toBeShipped = $sheet->getCell ( "J" . $row )->getValue (); // 已发货 $delivered = $sheet->getCell ( "K" . $row )->getValue (); // 拒收 $rejection = $sheet->getCell ( "L" . $row )->getValue (); // 已签收 $hasBeenSigned = $sheet->getCell ( "M" . $row )->getValue (); // 已结算 $settled = $sheet->getCell ( "N" . $row )->getValue (); if (!empty($uid) || $uid > 0) { $sqlOther = $sqlOther . "(null, {$uid}, {$totalOrder}, {$notAllocated}, {$single}, {$concle}, {$invalid}, {$tracking}, {$confirmed}, {$toBeShipped}, {$delivered}, {$rejection}, {$hasBeenSigned}, {$settled}, '{$datetime}' )"; } if ($row % 10 == 0 || $row == $highestRow) { $mysql->query ( $sqlHead . $sqlOther ); $sqlOther = ""; } else if (!empty($uid)) { $sqlOther = $sqlOther . ", "; } } echo "<script>alert('订单数据导入成功!');location.href='readExcel.php'</script>";
}
在存库之前dump一下数据 看是不是真的上传了8条数据 如果是8条的话看一下存库的时候是不是有什么条件