パブリック 関数ImportFile() { $ファイル =リクエスト() - > ファイル( 'ファイル' ); $のparams = $この - >要求- >のparam(); パラメータを取得することができます// IF(!$ファイル){ $この - >エラー( 'インポートファイル」を選択してください); } // パスファイル保存 $情報 = $ファイル - >移動(のroot_path'公共'DS'アップロード... );
//ファイルのパスを取得します $ filePathに =のroot_pathを.. '国民DS 'アップロード' DS ... $情報 - > getSaveName();
//ファイルを見つける のIF(!is_file($ filePathに)){ $この - >エラー( '无相关记录' ); }
// ===========开始 $ PHPReader = 新しい\ PHPExcel_Reader_Excel2007(); もし(!$ PHPReader - > canRead($ filePathに)){ $ PHPReader = 新しい\ PHPExcel_Reader_Excel5(); もし(!$ PHPReader - > canRead($ filePathに)){ $ PHPReader = 新しい\ PHPExcel_Reader_CSV(); もし(!$ PHPReader- > canRead($ filePathに)){ $この - >エラー( '未知のフォーマット' ); } } } $ PHPExcel = $ PHPReader - >負荷($ filePathに); // ロードファイル $ currentSheet = $ PHPExcel - > getSheet( 0); // 最初のワークシートにファイルを読み込む $ allColumn = $ currentSheet - > getHighestDataColumn(); // 最大列数を取得 $ ALLROW = $ currentSheet - > getHighestRow(); // の合計数を取得しますライン $ maxColumnNumber = \ PHPExcel_Cell :: columnIndexFromString(allColumn $); // 取得した列の数 //カラムヘッダとして最初の行にExcelにアップロードされ得る ため($ currentRowの = 1; $ currentRowの <= 1; ++ $ currentRowの){ ため($もcurrentColumn = 0 ; また、$ currentColumn < $ maxColumnNumber ; ++ $もcurrentColumn ){ $ヴァル = $ currentSheet - > getCellByColumnAndRow($もcurrentColumn、$ currentRowの) - > のgetValue(); $フィールド [] = $ヴァル; } }
//合計データを保存 $のINSERT = []; // 行のサイクル数:currentRowのデータが第二の行から開始される ため( $ currentRowの = 2; $ currentRowの <= $ ALLROW ; ++ $ currentRowの){ $値 = []; // 行 //行あたりのサイクル のために(また、$ currentColumn = 0; $もcurrentColumn < $ maxColumnNumber ; ++ $もcurrentColumn ){ $ヴァル = $ currentSheet - > getCellByColumnAndRow( $もcurrentColumn、 $ currentRowの) - >getValue(); $値は [] = IS_NULL($ valの)?'':$ valの; } $行 = []; // 合并 $の一時 = array_combine($フィールド、$値); foreachの($の一時 として $ K => $ V {) の場合($ kを == ''!{) $ K = トリム($ K )。 // 获得キー COL $ =自己:: excel2dbColhandler($ K ); // Excelが対応するデータベースフィールドを返す列ヘッダ名を渡す IF($ COL ){ $行 [ $ COL = TRIM($のV ); } } } IF($行){ $行 [ 'CREATE_TIME'] = DATE( 'はYmd H:私は:S' ); $ INSERT [] = $行は、 } } // モデルを追加したい取得 $ nowModelを =この$ - > getNowModel($ paramsは [ 'TBNAME' ]); $ nowModel - > SAVEALL($のINSERT ); 解除($情報); // 変数放出を開始 するunlink($ filePathにする); // ファイルを削除します }