PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。也是我们日常开发中,经常会遇到的使用场景。比如有个客户信息表,要批量导出发给同事,我们就可以用PHPExcel来快速实现。同样,如果我们要利用短信群发接口去群发信息,PHPExcel可以快速导入客户信息,避免人工录入信息的麻烦。
1、下载 PHPExcel 资源
(1)github 下载
https://github.com/PHPMailer/PHPMailer/
下载PHPExcel的SDK,将SDK解压之后的phpoffice/phpexcel中的 Classes 文件夹拷贝到自己的项目。
(2)composer 下载
composer require phpoffice/phpexcel
将下载的 phpoffice/phpexcel中的 Classes 文件夹拷贝到自己的项目中。
2、具体开发步骤
(1)引入所需的类库文件,这里只需引入 IOFactory 类即可。
(2)读取excel文件,检测文件是否存在。
(3)读取excel文件的工作表(默认为第一张工作表)。
(4)最后循环输出所读取的数据
3、实现代码
<?php
header("content-type:text/html;charset=utf-8");
include_once "lib/Classes/PHPExcel/IOFactory.php";
date_default_timezone_set('PRC');
$path = './test.xls';
// 读取excel文件
try {
$inputFileType = PHPExcel_IOFactory::identify($path);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($path);
} catch (Exception $e) {
die("加载文件发生错误:" . pathinfo($path, PATHINFO_BASENAME) . ":" . $e->getMessage());
}
// 读取工作表(0 表示读取第一张工作表)
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 行数
$highestColumn = $sheet->getHighestColumn(); // 列数
// 获取一行的数据
echo '获取一行的数据','<br/>';
for ($row = 1; $row <= $highestRow; $row++){
// 将读取的一行数据放入数组中
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
//这里得到的rowData都是一行的数据,得到数据后自行处理,我们这里只打出来看看效果
print_r($rowData);
echo '<br>';
}
echo '获取所有行的数据','<br/>';
static $list = array();
for($row = 1;$row <= $highestRow;$row++){
$list[] = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
}
echo '<pre>';
print_r($list);