php 讀取excel中的內容到mysql 資料庫

lankecms發表於2014-11-07

實現excel中的內容到mysql 資料庫 。

 

excel中的內容到mysql 資料庫步驟:

 

一:下載地址 : http://sourceforge.net/projects/phpexcelreader/

 

      1:下載下來有個 “phpExcelReader.zip”的壓縮包。解壓,我們需要的只有 Excel 資料夾的內容,首先把 “oleread.inc” 改為 “OLERead.php”,還有得 修改 “reader.php” 這個檔案:

 

            修改第第31行  require_once 'Spreadsheet/Excel/Reader/OLERead.php';

改為 ”   :     require_once 'OLERead.php';

 

                  第 261行 =&  改為 =  號就 OK 了

 

二:簡單例項操作:

 

   1: 首先我在資料庫中 建立了一個 excel 的表 ,欄位是 id 和 tel  存取電話號碼(呆會要從excel表中讀取插入到裡面去的)

 

   2:copy 我們下載下來的 操作檔案(上面我們修改的那兩個檔案),"OLERead.php" 和 "reader.php" 放到我們http目錄下,

 

       OK ,現在我們在和兩個檔案的同級目錄下建立一個 aaa.php (讀取excel)的檔案,同時也建立一個aaa.xls 的檔案,裡面內容就是

 

比如是這樣的        

                            

 

 

      OK,現在我們來寫 aaa.php 的讀取該 excel檔案中的內容到資料庫,程式碼如下:

 

 

    

  1. require_once 'reader.php';   //載入引用操作excel的類  
  2. $data = new Spreadsheet_Excel_Reader(); //例項化  
  3. $data->setOutputEncoding('gbk');      //編碼  
  4. $data->read('aaa.xls');            //讀取的檔案  
  5. $conn= mysql_connect('localhost','root',''or die("連線錯");    
  6. mysql_query("set names 'gbk'");//設定編碼輸出  
  7. mysql_select_db('haozi'); //選擇資料庫  
  8. for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {  
  9.   $sql = "INSERT INTO excel VALUES(null,'".$data>sheets[0]['cells'][$i][1]."')";    
  10. echo $sql.'<br />';    
  11. mysql_query($sql);  
  12. }  
  13. //注意:  
  14.  for $i=1 是從表的第一行開始,如果第一行是文字說明,那麼$i=2  
  15.  $data>sheets[0]['cells'][$i][1] 代表讀取表中的第一個列,如果要取得二個就是 $data>sheets[0]['cells'][$i][2](但要和資料庫中欄位數一致)  
 

 

 

 

以下為優化程式碼,新增加可以瀏覽選擇檔案的操作

 

        

  1. <form id="form1" name="form1" method="post" action="">  
  2.   <label>  
  3.   <input name="file" type="file" id="file13"/>  
  4.   <input type="submit" name="Submit" value="提交" />  
  5.   </label>  
  6. </form>  
  7. <p>  
  8. <?php  
  9. require_once 'reader.php';    
  10. $data = new Spreadsheet_Excel_Reader();   
  11. $data->setOutputEncoding('gbk');  
  12. $conn= mysql_connect('localhost','root','haozi'or die("Can not connect to database.");    
  13. mysql_query("set names 'gbk'");//設定編碼輸出  
  14. mysql_select_db('haozi'); //選擇資料庫  
  15. if($_POST['Submit'])  
  16. {  
  17. $data->read($_POST['file']);  
  18.   
  19. for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {  
  20.   $sql = "INSERT INTO excel VALUES(null,'".$data->sheets[0]['cells'][$i][1]."')";   
  21.   $query=mysql_query($sql);  
  22.   if($query)  
  23.     {  
  24.      echo "<mce:script type="text/javascript"><!--  
  25. alert('資料已經提交成功');window.top.location='a.php'  
  26. // --></mce:script>";  
  27.      }else{  
  28.      echo "<mce:script type="text/javascript"><!--  
  29. alert('資料已經提交失敗');window.top.location='a.php'  
  30. // --></mce:script>";  
  31.      }  
  32. }  
  33. }  
  34. ?>  
 

 

圖:

 

OK 執行 aaa.php 就可以檢視資料已經到 mysql 資料庫中去了

 

 

相關文章