PHPExcel 導入

    function importExecl($file='', $sheet=0)
    {
        header("Content-type:text/html;charset=utf-8");
        ini_set('memory_limit', '3072M');
        ini_set('max_execution_time', 0);
        $file = "./Uploads/20180605.xlsx";
        $file = iconv("utf-8", "gb2312", $file);   //轉碼
        if(empty($file) OR !file_exists($file)) {
            die('file not exists!');
        }
        vendor('PHPExcel.PHPExcel');
        $objRead = new \PHPExcel_Reader_Excel2007();   //建立reader對象
        if(!$objRead->canRead($file)){
            $objRead = new PHPExcel_Reader_Excel5();
            if(!$objRead->canRead($file)){
                die('No Excel!');
            }
        }
        $arr = array(
            'A' => 'goods_oe',
            'B' => 'goods_number',
            'C' => 'goods_name',
            'D' => 'content',
            'E' => 'source',
            'F' => 'category_name'
        );

        $obj = $objRead->load($file);  //建立excel對象
        $currentSheet = $obj->getSheet($sheet);   //獲取指定的sheet表
        $allColumn = $currentSheet->getHighestColumn();   //取得最大的列號
        $allRow = $currentSheet->getHighestRow();   //獲取總行數
        $i = 0;

      //方法一    $data 是所有數據
  $file = "./Uploads/20180605.xlsx";
        $file = iconv("utf-8", "gb2312", $file);   //轉碼
        if(empty($file) OR !file_exists($file)) {
            die('file not exists!');
        }
        vendor('PHPExcel.PHPExcel');
        $objRead = new \PHPExcel_Reader_Excel2007();   //建立reader對象
        if(!$objRead->canRead($file)){
            $objRead = new PHPExcel_Reader_Excel5();
            if(!$objRead->canRead($file)){
                die('No Excel!');
            }
        }
        $arr = array(
            'A' => 'goods_oe',
            'B' => 'goods_number',
            'C' => 'goods_name',
            'D' => 'content',
            'E' => 'source',
            'F' => 'category_name'
        );

        $obj = $objRead->load($file);  //建立excel對象
        $currentSheet = $obj->getSheet($sheet);   //獲取指定的sheet表
        $allColumn = $currentSheet->getHighestColumn();   //取得最大的列號
        $allRow = $currentSheet->getHighestRow();   //獲取總行數
        $i = 0;

      //方法一    $data 是所有數據
    for($j=3;$j<=$allRow;$j++){
            //從A列讀取數據
            for($k='A';$k<=$allColumn;$k++){
                // 讀取單元格
                $data[$j][]=$obj->getActiveSheet()->getCell("$k$j")->getValue();
            }
//            print_r($data[$j][0]);die;
        }

      //方法二 $data2 每一行數據就是一個數組      

    for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) {
            $i++;
            /**從第A列開始輸出*/
            for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
                $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow)->getValue();
                $data1[$currentColumn] = $val;
            }
            foreach ($arr as $key => $val) {
                $data2[$val] = $data1[$key];
            }
            //保存數據入庫
            $this->Savedata($data2, $currentRow);
            echo "\n";
        }


}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章