在php中可以使用phpexcelreader或者phpexcel来读取excel文件内容,其读取内容的语句代码如“$objphpexcel->getactivesheet()->getcell('a16')->getvalue();”。
php读取excel文件内容
项目需要读取excel的内容,从百度搜索了下,主要有两个选择,第一个是phpexcelreader,另外一个是phpexcel。
phpexcelreader比较轻量级,仅支持excel的读取,实际上就是一个reader。但是可惜的是不能够支持excel 2007的格式(.xlsx)。
phpexcel比较强大,能够将内存中的数据输出成excel文件,同时还能够对excel做各种操作,下面主要介绍下如何使用phpexcel进行excel 2007格式(.xlsx)文件的读取。
下载phpexcel后保存到自己的类文件目录中,然后使用以下代码可以打开excel 2007(xlsx)格式的文件:
require_once '/libs/phpexcel-1.8.0/classes/phpexcel.php'; //修改为自己的目录echo '<p>test phpexcel 1.8.0: read xlsx file</p>';$objreader = phpexcel_iofactory::createreaderforfile($filename);$objphpexcel = $objreader->load($filename);$objphpexcel->setactivesheetindex(1);$date = $objphpexcel->getactivesheet()->getcell('a16')->getvalue();
输出$date变量就能够看到文件中的内容了。phpexcel使用phpexcel_iofactory这个类来自动匹配所上传的文件类型,当然我们也可以自己制定要解析的文件类型。
之后通过load方法,将php文件加载到objphpexcel对象中。如果excel文件有多个sheet,可以通过setactivesheetindex来设置当前活动的sheet。如何通过sheet名来获得当前sheet我还不知道,如果有知道的可以站内我。
需要注意的是,对于excel中的日期格式,phpexcel读出来的是不是日期类型,需要我们使用以下方法来进行日期类型转换。
echo date("y-m-d h:i:s",phpexcel_shared_date::exceltophp($date));
下面的代码显示了如何遍历显示excel的内容:
<table id="table_id"><?php $objworksheet = $objphpexcel->getactivesheet(); $i = 0; foreach($objworksheet->getrowiterator() as $row){ ?> <tr> <?php $celliterator = $row->getcelliterator(); $celliterator->setiterateonlyexistingcells(false); if( $i == 0 ){ echo '<thead>'; } foreach($celliterator as $cell){ echo '<td>' . $cell->getvalue() . '</td>'; } if( $i == 0 ){ echo '</thead>'; } $i++; ?> </tr> <?php }?></table>
更多相关知识,请访问 !!