PhpExcelReader是一個用php來讀取excel檔案的套件。
這個套件檔案小,且容易使用,堪稱無痛。
但是顧名思義,它就真的只能讀取而已。如果你要搞些匯出之類的動作,那就只能另請高明啦!
你可以在這裡收服取得phpExcelReader
phpExcelReader:Click
進去連結之後,點選綠色的download即可。
(唉,想我第一次進這個網站的時候還不知道要怎麼下載(掩面)。。故特此說明,以造褔後人。)
下載完成後解壓,你不必匯入解壓後的所有檔案,我們真正會用到的就只有Excel資料夾裡頭的東西。
對,沒錯,就只有那兩個檔案,剩下的不是教學文件就是記錄文件,匯入也是佔空間。
更甚者,你可以把oleread.inc裡頭的東西貼到reader.php裡頭去,這樣就只剩一個檔案啦,給有精神潔癖的人做參考。
接下來就是程式碼的部份了。
其實在example中有詳盡的介紹,基本上是照抄就可以使用了。
我做的是把excel檔案匯入到Mysql的資料庫中,結合之前的檔案上傳,範例如下:
這是個非常簡單的範例,一次只能匯入一張表。
它做的事就是讀取上傳的檔案並把它存至資料庫。
如果要取用的話,記得把sql語法中的資料表名稱改掉。
另外,陣列$tmp是視你資料表欄位而改變,有n個欄位$tmp陣列就到n
Hope you like it!
這個套件檔案小,且容易使用,堪稱無痛。
但是顧名思義,它就真的只能讀取而已。如果你要搞些匯出之類的動作,那就只能另請高明啦!
你可以在這裡
phpExcelReader:Click
進去連結之後,點選綠色的download即可。
(唉,想我第一次進這個網站的時候還不知道要怎麼下載(掩面)。。故特此說明,以造褔後人。)
下載完成後解壓,你不必匯入解壓後的所有檔案,我們真正會用到的就只有Excel資料夾裡頭的東西。
對,沒錯,就只有那兩個檔案,剩下的不是教學文件就是記錄文件
更甚者,你可以把oleread.inc裡頭的東西貼到reader.php裡頭去,這樣就只剩一個檔案啦
接下來就是程式碼的部份了。
其實在example中有詳盡的介紹,基本上是照抄就可以使用了。
我做的是把excel檔案匯入到Mysql的資料庫中,結合之前的檔案上傳,範例如下:
<?php require_once('phpExcelReader/reader.php'); if($_POST){ $uploadExcel = $_FILES['file']['tmp_name']; $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('UTF-8'); $data->read($uploadExcel); $readData =array(); //讀取檔案中的每一格,並把它存至陣列 for ($i = 1; $i <= $data->sheets[0]['numRows']; $i ) { for ($j = 1; $j <= $data->sheets[0]['numCols']; $j ) { $readData[$i][$j] = $data->sheets[0]['cells'][$i][$j]; } } sava_data($readData); } function sava_data($readData){ $count =0; foreach( $readData as $key => $tmp){ /*-----開始匯入資料-----*/ if( $key==1 ){ $sql_ex = "INSERT INTO `your_table_name`($tmp[1],$tmp[2],$tmp[3],$tmp[4]) "; //資料庫的table欄位要記得更改. continue; }else $sql = $sql_ex . " VALUES('$tmp[1]','$tmp[2]','$tmp[3]','$tmp[4]')"; $result = mysql_query($sql) or die("無法送出" . mysql_error( )); $count ; } echo "<script>alert('共加入".$count."筆資料');</script>"; } ?> <form enctype="multipart/form-data" method="POST" action=""> <label>選擇Excel資料表</label> <input name="file" type="file" id="file" size="50" /> <input type="submit" value="匯入資料"/>
這是個非常簡單的範例,一次只能匯入一張表。
它做的事就是讀取上傳的檔案並把它存至資料庫。
如果要取用的話,記得把sql語法中的資料表名稱改掉。
另外,陣列$tmp是視你資料表欄位而改變,有n個欄位$tmp陣列就到n
Hope you like it!
0 comments:
張貼留言