导入数据

$insertId = 0;		//获取插入数据库的ID
function explodeXLSX($file_path)	//$file_path 为 XLSX 的路径
{
    require_once _LIBS . \'PHPExcel/Classes/PHPExcel.php\';		//PHPExcel的路径
    require_once _LIBS . \'PHPExcel/Classes/PHPExcel/IOFactory.php\';

    $objReader = PHPExcel_IOFactory::createReader(\'Excel2007\');
    $objPHPExcel = $objReader->load($file_path,\'utf-8\');
    $sheet = $objPHPExcel->getSheet(0);   // 取得第一个Sheet
    $highestRow = $sheet->getHighestRow();   // 取得总行数

    global $insertId;

    //DB::Debug();
    DB::tranBegin();		//事务开始
    for($j=2; $j <= $highestRow; $j++) {

        $row = array();
        $level_1_id = null;
        for($col = \'A\'; $col != \'AA\'; $col++) {		//AA为数据列的后一个列号
            $value = $objPHPExcel->getActiveSheet()->getCell(\"$col$j\")->getValue();
            $value = trim($value);
            
            if(\'A\' === $col) $row[\'name\'] = $value;		//name为数据库对应的字段
            if(\'B\' === $col) $row[\'alias\'] = $value;
            if(\'C\' === $col) $row[\'degree\'] = $value;
            if(\'D\' === $col) $row[\'type\'] = $value;
            if(\'E\' === $col) $row[\'insurance\'] = $value;
            if(\'F\' === $col){
                if($value) $row[\'pic_url\'] = $value;
            }
            ......
        }

        if(!empty($row))
        {
            $id = Student::add($row);	//保存该行数据到数据库
            if($id < 1){
                exit(\'<  charset=\"utf-8\"> 保存数据出错,请检查是否有空行。<br>所有数据被滚回。\');
            }
            if($insertId != $id){
                $insertId = $id;
            }else{		//说明该行数据保存不成功
                exit(\'<  charset=\"utf-8\"> 保存数据出错<br>所有数据被滚回。\');
            }
        }
    }
    DB::tranEnd();		//事务结束

    header(\"Location: /?a=import&msg=导入成功\");exit;
}

收藏 打印