php开发中肯定会遇到将excel文件内容导入到数据库的需要,php-excel-reader是一个读取excel的类,可以很轻松的使用它读取excel文件非常方便。
php-excel-reader下载地址: https://www.jb51.net/codes/67223.html
我下载的是php-excel-reader-2.21版本,使用的时候还遇到几个小问题,后面再细说,先奉上php实例:
我使用的excel如下图:

复制代码 代码如下:
 
<?php 
/*by */ 
header("Content-Type:text/html;charset=utf-8"); 
require_once 'excel_reader2.php'; 
//创建对象 
$data = new Spreadsheet_Excel_Reader(); 
//设置文本输出编码 
$data->setOutputEncoding('UTF-8'); 
//读取Excel文件 
$data->read("example.xls"); 
//$data->sheets[0]['numRows']为Excel行数 
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { 
//$data->sheets[0]['numCols']为Excel列数 
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { 
//显示每个单元格内容 
echo $data->sheets[0]['cells'][$i][$j].' '; 
} 
echo '<br>'; 
} 
?> 
读取结果截图如下:

(1)出现Deprecated: Function split() is deprecated in 。。。错误
解决:将excel_reader2.php源码中split改为explode,详情点击php中explode与split的区别介绍
(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] =>  
) 
) 
[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] =>  
[link] =>  
) 
) 
) 
) 
) 
[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文件就是这么简单
您可能感兴趣的文章:
