php解析Excel表格並且導入MySQL數據庫


最近根據客戶需求,需要增加一個導入Excel表格的功能,Excel中存放的是知識庫中醫知識的分類體系目錄。是在thinkphp框架下編寫的代碼,用的是phpexcel第三方包。測試環境用的是xampp集成了mysql和phpmyadmin。

具體如下形式:

 

 

 

 

 

 

 

<?php

        require_once './PHPExcel/PHPExcel.php';

        require_once './PHPExcel/PHPExcel/IOFactory.php';

        require_once './PHPExcel/PHPExcel/Reader/Excel5.php';

        $objReader = PHPExcel_IOFactory::createReader('excel2007'); //use Excel5 for 2003 format 

        $excelpath='D:/wamp64/www/Book1.xlsx';
        //$excelpath = $uploadAddr;

        //$objPHPExcel = $objReader->load($excelpath); 
        $objPHPExcel = PHPExcel_IOFactory::load($excelpath);
        $sheet = $objPHPExcel->getSheet(0); 

        $highestRow = $sheet->getHighestRow();       //取得總行數 

        $highestColumn = $sheet->getHighestColumn(); //取得總列數
        error_reporting( E_ALL&~E_NOTICE );
        $str = "";
        for($j=2;$j<=$highestRow;$j++)
        { 
            $id = "";
            $name = "";
            for($k='A';$k<=$highestColumn;$k++)
            { 
                //$str .= $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'\\';//讀取單元格
                $str = $sheet->getCell($k.$j)->getValue();
                //$str = $sheet->getCell($k.$j+1)->getValue(); echo $str."<br>";
                //echo $sheet->getCell($k.$j)->getValue()."  "; 
                 //explode:函數把字符串分割為數組。
                $strs = explode("\\",$str); 
                if ($k=='A') $id = $str;
                if ($k=='B') $name = $str;
            } 
            echo $id; echo $name."<br>";
            $link = mysqli_connect("localhost", "root", "", "excel");
                //$db_selected = mysql_select_db("excel", $link);
                if (mysqli_connect_errno()) {
                    printf("Connect failed: %s\n", mysqli_connect_error());
                    exit();
                } 
                mysqli_query($link,"set names utf8"); 
            try {
                    mysqli_query($link, "INSERT INTO test(id,name) VALUES('".$id."','".$name."')"); 
                    // echo "$strs[0]"." | "."$strs[1]"."<br>"; 
                    // echo "INSERT INTO test(id,classname) VALUES('".$strs[0]."','".$strs[1]."')";
                    // echo "<br>";
                } catch (Exception $e) {
                  print $e->getMessage();  
                }   
        }                                
   
?>
 </body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM