在程式裏新增資料時,我們通常是提供表單來讓使用者填寫,但是有時是大量或是多筆的資料要建立,所以我們通常會提供一個匯入的功能,讓使 用者能將他們所建立的資料檔匯入。使用者最常使用的是 excel 檔,但是php內建只有提供 csv 檔的解析,所以我們就得跟使用者解釋如何把 excel 存成 csv ,這個有時挺有難度的。
經過了重重的打擊,我決來好好找一個工具,看能不能直接解析 excel 檔。
透過 google 我找到了 phpExcelReader 這個專案
下載後,在使用上有一些問題
Q1、直接執行後,會有以下的錯誤:
Warning: require_once(Spreadsheet/Excel/Reader/OLERead.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxxxx/public_html/test/phpExcelReader/Excel/reader.php on line 31
Fatal error: require_once() [function.require]: Failed opening required ‘Spreadsheet/Excel/Reader/OLERead.php’ (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/xxxxx/public_html/test/phpExcelReader/Excel/reader.php on line 31
解決的方式如下:
編輯 Excel/reader.php 這個檔,把 31行的 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’; 改成 require_once ‘Excel/oleread.inc’;
Q2、接著出現以下錯誤訊息:
Fatal error: Out of memory (allocated 46137344) (tried to allocate 45613057 bytes) in /home/kirin/public_html/test/phpExcelReader/Excel/oleread.inc on line 172
解決的方法:
這是因為他附的excel範例檔怪怪的,你上傳自己的excel檔,然後在 example.php 裏,找到$data->read(’jxlrwtest.xls’); 這一行,把 jxlrwtest.xls 改成你上傳的檔案,就可以正常顯示了。
Q3、然後,我發現中文沒辦法正常顯示。
解決方法:
在 example.php 裏的第12行 $data->setOutputEncoding(’CP1251′);,把CP1251 改成 UTF-8 就可以正常秀出中文了
然後,似乎就一切正常了。
這裏是我修改後的檔案,我打包成 tar ball,有需要的人請享用
phpexcelreader
●參考資料
1、http://sourceforge.net/projects/phpexcelreader
2、http://www.xml.lt/Blog/2007/12/14/Reading+Excel+files+with+PHP
3、http://blog.roodo.com/jaceju/archives/4654041.html
4、http://vrypan.net/log/2004/11/10/parsing-xls-files-with-php/
經過了重重的打擊,我決來好好找一個工具,看能不能直接解析 excel 檔。
透過 google 我找到了 phpExcelReader 這個專案
下載後,在使用上有一些問題
Q1、直接執行後,會有以下的錯誤:
Warning: require_once(Spreadsheet/Excel/Reader/OLERead.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxxxx/public_html/test/phpExcelReader/Excel/reader.php on line 31
Fatal error: require_once() [function.require]: Failed opening required ‘Spreadsheet/Excel/Reader/OLERead.php’ (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/xxxxx/public_html/test/phpExcelReader/Excel/reader.php on line 31
解決的方式如下:
編輯 Excel/reader.php 這個檔,把 31行的 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’; 改成 require_once ‘Excel/oleread.inc’;
Q2、接著出現以下錯誤訊息:
Fatal error: Out of memory (allocated 46137344) (tried to allocate 45613057 bytes) in /home/kirin/public_html/test/phpExcelReader/Excel/oleread.inc on line 172
解決的方法:
這是因為他附的excel範例檔怪怪的,你上傳自己的excel檔,然後在 example.php 裏,找到$data->read(’jxlrwtest.xls’); 這一行,把 jxlrwtest.xls 改成你上傳的檔案,就可以正常顯示了。
Q3、然後,我發現中文沒辦法正常顯示。
解決方法:
在 example.php 裏的第12行 $data->setOutputEncoding(’CP1251′);,把CP1251 改成 UTF-8 就可以正常秀出中文了
然後,似乎就一切正常了。
這裏是我修改後的檔案,我打包成 tar ball,有需要的人請享用
phpexcelreader
●參考資料
1、http://sourceforge.net/projects/phpexcelreader
2、http://www.xml.lt/Blog/2007/12/14/Reading+Excel+files+with+PHP
3、http://blog.roodo.com/jaceju/archives/4654041.html
4、http://vrypan.net/log/2004/11/10/parsing-xls-files-with-php/
沒有留言:
張貼留言