將excel的資料轉到mysql,使用phpMyAdmin及phpExcelReader
因為工作需要,必須將excel的資料輸出到mysql的資料庫,本來以為很簡單的一件事,卻弄了一整天,已經近半年沒更新的部落格,不得已再記錄一下將excel的資料轉到mysql的心得。 
首先先找到一個工具,叫做 phpExcelReader ,直接跑下載回來的壓縮檔中的 example.php。 
不過要注意: 
Excel\reader.php 中的下面這行要修改 
將 require_once 'Spreadsheet/Excel/Reader/OLERead.php'; 
改為 require_once 'oleread.inc'; 
再將example.php 中 
修改 $data->setOutputEncoding('CP1251'); 
為 $data->setOutputEncoding('CP950'); 
否則中文會有問題。 
修改 $data->read('jxlrwtest.xls'); 
為自己的 excel 檔名。 
再視情況修改下面這段: 
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { 
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { 
echo "\"".$data->sheets[0]['cells'][$i][$j]."\","; 
} 
echo "\n"; 
 } 
我把它改成下列: 
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { 
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { 
echo "\"".$data->sheets[0]['cells'][$i][$j]; 
if($j < $data->sheets[0]['numCols']) 
echo "\","; 
else 
echo "\""; 
 
} 
echo "<br>"; 
 第一段紅字功能:原來的程式每一列最後會多一個逗號,這會讓phpMyAdmin認為多一個欄位,而無法正常轉excel檔到mysql。這一段會拿掉最後的逗號。 
第二段紅字( echo "<br>";):會讓每一列自動跳行。 
 上面的結果會直接顯示在瀏覽器上,必須複製到文字檔,再用phpMyAdmin的工具,載到mysql中(phpMyAdmin使用方法請自行搜尋參考)。 
不過以上的工具,手動的部分還很多,例如必須在mysql建立一個對應到excel的table,能不能自動在mysql建立一個表,自動將excel轉進去呢,下次有時間想來自己寫一個看看。 
參考 
以 PHP 讀取 Excel 檔案的資料 
http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568133.html 
http://wefong.idv.tw/xkellydz/viewthread.php?tid=576
