php导入excel文件的处理
项目需要导入excel文件进行处理。
baidu一下有好几种方法。发现,这个冬雨博客里面介绍的比较详细。
他介绍的第一和第二种是导出文件为excel的方法。
第三种是http://www.codeplex.com/PHPExcel一个强大的类库,可以导入可以导出。
本人用的是另外一个类库叫phpExcelReader因为我要的功能只是导入数据,下载地址
http://sourceforge.net/projects/phpexcelreader/郁闷的是不能直接用,直接用回报错,百度之后别人给的注意如下。
注意点:
reader.php 中的下面这行要修改
将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;
改为 require_once ‘oleread.inc’;
example.php 中
修改 $data->setOutputEncoding(’CP1251′);
为 $data->setOutputEncoding(’CP936′);中文
修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));
为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));
不然中文会有问题。
繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。
修改 $data->read(’jxlrwtest.xls’) 为自己的 excel 文件名,zip 档中附的 jxlrwtest.xls 应该是坏了。
我自己的感受:
- require_once ‘oleread.inc’也可以和拷贝出来放到reader的文件最前面合并为一个文件。
- $data->setOutputEncoding(‘utf-8’)也可以这样用,我的项目都是utf-8的编码,开始用的就是上面的写法$data->setOutputEncoding(’CP936′);结果是,导入数据库老是说编码错误。最后设成utf-8解决了。
- 下载下来的demo中的jxlrwtest.xls 却实是坏了。我用自己的excel文件就ok了。也不知道为什么他们的demo怎么不换个,可以用的,demo都运行这么麻烦。奇怪!