【实例】使用 PHPMailer 读取excel 文件

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);
上一篇:PHP发送邮件


下一篇:PhpMailer:SMTP错误:EHLO命令失败