PHPExcel 匯入Excel資料的方法

來源:互聯網
上載者:User
這篇文章主要介紹了關於PHPExcel 匯入Excel資料的方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

一:使用composer下載 phpoffice/phpexcel 或者直接下載安裝包

composer require phpoffice/phpexcel

1:匯入資料

原理:讀取檔案,擷取檔案的最大行,最大列。然後組裝資料,匯入資料庫。

注意:如果你的Excel檔案是加密的話是讀取不了的,我真的在這上面浪費了很多時間,如果有誰知道如何解決,麻煩告知一二謝謝。

我們來看看如何具體實現

實現方法

  public static function importExcel($file = '', $sheet = 0)    {            $file = iconv("utf-8", "gb2312", $file);   //轉碼        if (empty($file) OR !file_exists($file)) {                    die('file not exists!');        }                $objRead = new PHPExcel_Reader_Excel2007();   //建立reader對象        if (!$objRead->canRead($file)) {                    $objRead = new PHPExcel_Reader_Excel5();                    if (!$objRead->canRead($file)) {                        die('No Excel!');            }        }                $cellName = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',            'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI',            'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'];        $obj = $objRead->load($file);  //建立excel對象        $currSheet = $obj->getSheet($sheet);   //擷取指定的sheet表        $columnH = $currSheet->getHighestColumn();   //取得最大的列號        $columnCnt = array_search($columnH, $cellName);                $rowCnt = $currSheet->getHighestRow();   //擷取總行數        $data = [];                for ($_row = 1; $_row <= $rowCnt; $_row++) {  //讀取內容            for ($_column = 0; $_column <= $columnCnt; $_column++) {                            $cellId = $cellName[$_column] . $_row;                            $cellValue = $currSheet->getCell($cellId)->getValue();                            $data[$_row][$_column] = $cellValue;            }        }        $return_data = [];                foreach ($data as $k => $v) {                    if ($k > 1) {                        $test = array_combine($data[1], $data[$k]);                        array_push($return_data, $test);            }        }                return $return_data;    }

//精簡版

 public static function importExcel($file = '', $sheet = 0)    {        $file = iconv("utf-8", "gb2312", $file);   //轉碼        if (empty($file) OR !file_exists($file)) {                    die('file not exists!');        }        $objRead = new PHPExcel_Reader_Excel2007();   //建立reader對象        if (!$objRead->canRead($file)) {                    $objRead = new PHPExcel_Reader_Excel5();                    if (!$objRead->canRead($file)) {                        die('No Excel!');            }        }         $obj = $objRead->load($file);  //建立excel對象        $data =$obj->getSheet($sheet)->toArray();//擷取為數組        $return_data = [];                foreach ($data as $k => $v) {                    if ($k > 0) {                        $test = array_combine($data[0], $data[$k]);                        array_push($return_data, $test);            }        }         return $return_data;    }

注意如果檔案過大,PHP讀取會過長,我們可以設定。

 set_time_limit(0);//0代表永久

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.