使用php-excel-reader读取excel文件

php开发中肯定会遇到将excel文件内容导入到数据库的需要,php-excel-reader是一个读取excel的类,可以很轻松的使用它读取excel文件非常方便。

php-excel-reader下载地址: http://code.google.com/p/php-excel-reader/downloads/list

我下载的是php-excel-reader-2.21版本,使用的时候还遇到几个小问题,后面再细说,先奉上php实例:

我使用的excel如下图:

php-excel-readerphp代码如下:



  
  
  1. <?php
  2. /*by www.phpddt.com*/
  3. header("Content-Type:text/html;charset=utf-8");
  4. require_once 'excel_reader2.php';
  5. //创建对象
  6. $data = new Spreadsheet_Excel_Reader();
  7. //设置文本输出编码
  8. $data->setOutputEncoding('UTF-8');
  9. //读取Excel文件
  10. $data->read("example.xls");
  11. //$data->sheets[0]['numRows']为Excel行数
  12. for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
  13. //$data->sheets[0]['numCols']为Excel列数
  14. for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
  15. //显示每个单元格内容
  16. echo $data->sheets[0]['cells'][$i][$j].' ';
  17. }
  18. echo '<br>';
  19. }
  20. ?>

读取结果截图如下:

php-excel-reader读取excel文件再来说说这个类的小问题:

(1)出现Deprecated: Function split() is deprecated in 。。。错误

解决:将excel_reader2.php源码中split改为explode,详情点击这里.

(2)出现Deprecated: Assigning the return value of new by reference is deprecated in错误

解决:将excel_reader2.php源码中$this->_ole =& new OLERead()中 &去掉,因为php5.3中废除了=& 符号直接用=引用

(3)乱码问题解决:

构造函数是function Spreadsheet_Excel_Reader($file='',$store_extended_info=true,$outputEncoding=''),它默认的编码是utf-8,如果不指定,可能会出现乱码问题,可通过$data->setOutputEncoding('GBK');指定,还有如果你使用dump()函数,dump()函数将excel内容一html格式输出,使用htmlentities将字符转化为html的,它默认使用ISO8559-1编码的,所以你要将 excel_reader2.php源码中 htmlentities($val)函数改为htmlentities($val,ENT_COMPAT,"GB2312");才行。

最后来说说,php-excel-reader操作excel中的两个重要的方法:

1.dump(),它可以将excel内容以html格式输出:

echo $data->dump(true,true);

2.将excel数据存入数组中,使用$data->sheets,打印下如下:


Array
(
    [0] => Array
        (
            [maxrow] => 0
            [maxcol] => 0
            [numRows] => 5
            [numCols] => 4
            [cells] => Array
                (
                    [1] => Array
                        (
                            [1] => 编号
                            [2] => 姓名
                            [3] => 年龄
                            [4] => 学号
                        )

                    [2] => Array
                        (
                            [1] => 1
                            [2] => 小红
                            [3] => 22
                            [4] => a1000
                        )

                    [3] => Array
                        (
                            [1] => 2
                            [2] => 小王
                            [3] => 33
                            [4] => a1001
                        )

                    [4] => Array
                        (
                            [1] => 3
                            [2] => 小黑
                            [3] => 44
                            [4] => a1002
                        )

                    [5] => Array
                        (
                            [2] => by
                            [3] => www.phpddt.com
                        )

                )

            [cellsInfo] => Array
                (
                    [1] => Array
                        (
                            [1] => Array
                                (
                                    [xfIndex] => 15
                                )

                            [2] => Array
                                (
                                    [xfIndex] => 15
                                )

                            [3] => Array
                                (
                                    [xfIndex] => 15
                                )

                            [4] => Array
                                (
                                    [xfIndex] => 15
                                )

                        )

                    [2] => Array
                        (
                            [1] => Array
                                (
                                    [string] => 1
                                    [raw] => 1
                                    [rectype] => unknown
                                    [format] => %s
                                    [formatIndex] => 0
                                    [fontIndex] => 0
                                    [formatColor] => 
                                    [xfIndex] => 15
                                )

                            [2] => Array
                                (
                                    [xfIndex] => 15
                                )

                            [3] => Array
                                (
                                    [string] => 22
                                    [raw] => 22
                                    [rectype] => unknown
                                    [format] => %s
                                    [formatIndex] => 0
                                    [fontIndex] => 0
                                    [formatColor] => 
                                    [xfIndex] => 15
                                )

                            [4] => Array
                                (
                                    [xfIndex] => 15
                                )

                        )

                    [3] => Array
                        (
                            [1] => Array
                                (
                                    [string] => 2
                                    [raw] => 2
                                    [rectype] => unknown
                                    [format] => %s
                                    [formatIndex] => 0
                                    [fontIndex] => 6
                                    [formatColor] => 
                                    [xfIndex] => 23
                                )

                            [2] => Array
                                (
                                    [xfIndex] => 23
                                )

                            [3] => Array
                                (
                                    [string] => 33
                                    [raw] => 33
                                    [rectype] => unknown
                                    [format] => %s
                                    [formatIndex] => 0
                                    [fontIndex] => 6
                                    [formatColor] => 
                                    [xfIndex] => 23
                                )

                            [4] => Array
                                (
                                    [xfIndex] => 23
                                )

                        )

                    [4] => Array
                        (
                            [1] => Array
                                (
                                    [string] => 3
                                    [raw] => 3
                                    [rectype] => unknown
                                    [format] => %s
                                    [formatIndex] => 0
                                    [fontIndex] => 0
                                    [formatColor] => 
                                    [xfIndex] => 15
                                )

                            [2] => Array
                                (
                                    [xfIndex] => 15
                                )

                            [3] => Array
                                (
                                    [string] => 44
                                    [raw] => 44
                                    [rectype] => unknown
                                    [format] => %s
                                    [formatIndex] => 0
                                    [fontIndex] => 0
                                    [formatColor] => 
                                    [xfIndex] => 15
                                )

                            [4] => Array
                                (
                                    [xfIndex] => 15
                                )

                        )

                    [5] => Array
                        (
                            [2] => Array
                                (
                                    [xfIndex] => 15
                                )

                            [3] => Array
                                (
                                    [xfIndex] => 24
                                    [hyperlink] => Array
                                        (
                                            [flags] => 23
                                            [desc] => www.phpddt.com
                                            [link] => http://www.phpddt.co
                                        )

                                )

                        )

                )

        )

    [1] => Array
        (
            [maxrow] => 0
            [maxcol] => 0
            [numRows] => 0
            [numCols] => 0
        )

    [2] => Array
        (
            [maxrow] => 0
            [maxcol] => 0
            [numRows] => 0
            [numCols] => 0
        )

)

这样你应该知道怎么取excel中的数据了,好了,使用php-excel-reader读取excel文件就是这么简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值