qq_34074228 2016-08-21 08:08 采纳率: 32.1%
浏览 1567

PHP导入excel后少了一条数据

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>";

}

  • 写回答

1条回答 默认 最新

  • yunyunxiongsd 2016-08-21 08:14
    关注

    在存库之前dump一下数据 看是不是真的上传了8条数据 如果是8条的话看一下存库的时候是不是有什么条件

    评论

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler