PHPExcel读取excel文件示例
PHPExcel读取excel文件示例
PHPExcel最新版官方下载网址:http://phpexcel.codeplex.com/
PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包中带有大量如何生成各种样式excel文件的示例,但没有一个读取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。
需要注意的是,对于Excel中的日期格式,PHPExcel读出来的是不是日期类型,需要我们使用以下方法来进行日期类型转换。
echo date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));
下面的代码显示了如何遍历显示Excel的内容:
<table>
<?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>
=================================================
传统方法:
<?php
require_once '../Classes/PHPExcel/IOFactory.php';
// Check prerequisites
if (!file_exists("test.xls")) {
exit("not found test.xls.\n");
}
$reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load("test.xls"); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
$highestColumm= PHPExcel_Cell::columnIndexFromString($colsNum); //字母列转换为数字列 如:AA变为27
/** 循环读取每个单元格的数据 */
for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始
for ($column = 0; $column < $highestColumm; $column++) {//列数是以第0列开始
$columnName = PHPExcel_Cell::stringFromColumnIndex($column);
echo $columnName.$row.":".$sheet->getCellByColumnAndRow($column, $row)->getValue()."<br />";
}
}
?>
精简方法:
<?php
require_once '../Classes/PHPExcel/IOFactory.php';
// Check prerequisites
if (!file_exists("test.xls")) {
exit("not found test.xls.\n");
}
$reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load("test.xls"); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
/** 循环读取每个单元格的数据 */
for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始
for ($column = 'A'; $column <= $highestColumm; $column++) {//列数是以A列开始
$dataset[] = $sheet->getCell($column.$row)->getValue();
echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />";
}
}
?>
PHPExcel读取excel文件示例的更多相关文章
- PHPExcel读取Excel文件的实现代码
<?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianT ...
- (实用篇)PHPExcel读取Excel文件的实现代码
用PHPExcel读取Excel 2007 或者Excel2003文件,需要的朋友,可以参考下. 涉及知识点: php对excel文件进行循环读取 php对字符进行ascii编码转化,将字符转为十进 ...
- PHP使用phpexcel读取excel文件
PHP读取excel文件 require("Classes/PHPExcel.php"); require("Classes/PHPExcel/IOFactory.php ...
- 利用PHPExcel读取excel文件
$filePath = "7788.xls"; $PHPExcel = new PHPExcel(); $PHPReader = new PHPExcel_Reader_Excel ...
- php phpexcel 读取excel文件数据
public function readExcel(){ $allPath = '/home/examine\video/list.xls'; \think\Loader::import('exten ...
- PHPExcel读取excel文件
<?php set_time_limit(0); $dir = dirname(__FILE__);//当前脚本所在路径 require $dir."/PHPExcel_1.8.0/C ...
- 使用phpExcel读取excel文件
include_once '../include/common.inc.php'; include_once MC_ROOT.'include/smarty.inc.php'; date_defaul ...
- Yii 集成 PHPExcel读取Excel文件
PHPexcel官方下载以后,放入Yii的protected\extensions\phpexcel下面 try { spl_autoload_unregister(array('YiiBase', ...
- phpExcel读取excel文件数据
require_once $_SERVER['DOCUMENT_ROOT'].'/Classes/PHPExcel.php';require_once $_SERVER['DOCUMENT_ROOT' ...
随机推荐
- iOS 各尺寸iPhone分辨率
- 简述Mesos API–files
Below is a set of endpoints available on a Mesos agent. These endpoints are reachable at the address ...
- ifconfig命令(转)
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- Jenkins定时构建项目
我们是不是可以自动的来构建项目那么此时我们需要使用Poll SCM和Build periodically,我们在构建触发中选择这两项即可,其实他们两个就是一个自动任务 触发远程构建:触发远程构建Bui ...
- 线上Linux服务器运维安全策略经验分享
线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...
- linux web服务器静态资源的处理 unison+inotify双向同步
linux web服务器静态资源的处理 unison+inotify双向同步 http://monkeyzhu.blog.51cto.com/5764358/1324391 简介 unison可以使两 ...
- Tomcat启动时自动加载一个类
有时候在开发Web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以 ...
- IDE硬盘 SCSI硬盘 SATA硬盘
IDE一般是有扁平电缆连接的,一个扁平电缆可以连接2个IDE硬盘,而一个计算机一般提供2个扁平电缆,所以一般允许4块IDE硬盘.IDE经过多年的发展,成熟,廉价,稳定.一般老式的电脑中装的都是这种硬盘 ...
- spring mvc 的Controller类默认Scope是单例(singleton)的
使用Spring MVC有一段时间了,之前一直使用Struts2,在struts2中action都是原型(prototype)的, 说是因为线程安全问题,对于Spring MVC中bean默认都是(s ...
- spring 依赖注入 小结
通过 @Autoiwired注解 和接口 注入实现这个接口的实现类 的 类 也必须是 可注入的(必须归spring容器所管理)