利用PHPExcel读取Excel的数据和导出数据到Excel


Posted in PHP onMay 12, 2017

PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。也是我们日常开发中,经常会遇到的使用场景。比如有个客户信息表,要批量导出发给同事,我们就可以用PHPExcel来快速实现。同样,如果我们要利用短信群发接口去群发信息,PHPExcel可以快速导入客户信息,避免人工录入信息的麻烦。

PHPExcel使用教程:

首先下载PHPExcel

到https://github.com/PHPOffice/PHPExcel下载PHPExcel,如果不懂得使用git,可以到这https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8下载压缩包,懂得的自行用git下载。

下载好文件,解压可以得到如下文件:

利用PHPExcel读取Excel的数据和导出数据到Excel

PHPExcel

好了,现在我们就可以用PHPExcel愉快的读取和制作表格了!

PHPExcel DEMO1:利用PHPExcel读取excel信息:

我们在根目录创建一个名为read.php的文件来读取文档,创建一个test.xlsx的文件,里面写的信息如下:

利用PHPExcel读取Excel的数据和导出数据到Excel

然后在read.php写以下代码:

<?php
include ‘./Classes/PHPExcel/IOFactory.php';

$inputFileName = ‘./test.xls';
date_default_timezone_set(‘PRC');
// 读取excel文件
try {
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
die(‘加载文件发生错误:”‘.pathinfo($inputFileName,PATHINFO_BASENAME).'”: ‘.$e->getMessage());
}

// 确定要读取的sheet,什么是sheet,看excel的右下角,真的不懂去百度吧
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();

// 获取一行的数据
for ($row = 1; $row <= $highestRow; $row++){
// Read a row of data into an array
$rowData = $sheet->rangeToArray(‘A' . $row . ‘:' . $highestColumn . $row, NULL, TRUE, FALSE);
//这里得到的rowData都是一行的数据,得到数据后自行处理,我们这里只打出来看看效果
var_dump($rowData);
echo “<br>”;
}

得到的数据:

利用PHPExcel读取Excel的数据和导出数据到Excel

PHPexcel读取文件

PHPExcel DEMO2:利用PHPExcel导出信息到excel:

<?php

/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('PRC');

/** 引入PHPExcel */
require_once dirname(__FILE__) . './Classes/PHPExcel.php';

// 创建Excel文件对象
$objPHPExcel = new PHPExcel();
// 设置文档信息,这个文档信息windows系统可以右键文件属性查看
$objPHPExcel->getProperties()->setCreator("作者简庆旺")
 ->setLastModifiedBy("最后更改者")
 ->setTitle("文档标题")
 ->setSubject("文档主题")
 ->setDescription("文档的描述信息")
 ->setKeywords("设置文档关键词")
 ->setCategory("设置文档的分类");

//根据excel坐标,添加数据
$objPHPExcel->setActiveSheetIndex(0)
 ->setCellValue('A1', '你好')
 ->setCellValue('B2', '世界')
 ->setCellValue('C1', '你好')
 ->setCellValue('D2', '世界');

// 混杂各种符号, 编码为UTF-8
$objPHPExcel->setActiveSheetIndex(0)
 ->setCellValue('A4', 'Miscellaneous glyphs')
 ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');

$objPHPExcel->getActiveSheet()->setCellValue('A8',"你好世界");
$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);

$value = "-ValueA\n-Value B\n-Value C";
$objPHPExcel->getActiveSheet()->setCellValue('A10', $value);
$objPHPExcel->getActiveSheet()->getRowDimension(10)->setRowHeight(-1);
$objPHPExcel->getActiveSheet()->getStyle('A10')->getAlignment()->setWrapText(true);
$objPHPExcel->getActiveSheet()->getStyle('A10')->setQuotePrefix(true);

// 重命名工作sheet
$objPHPExcel->getActiveSheet()->setTitle('第一个sheet');

// 设置第一个sheet为工作的sheet
$objPHPExcel->setActiveSheetIndex(0);

// 保存Excel 2007格式文件,保存路径为当前路径,名字为export.xlsx
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save( 'export.xlsx');
// 保存Excel 95格式文件,,保存路径为当前路径,
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('export.xls');

好了,执行后我们可以得到export.xls和export.xlsx。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
PHP 已经成熟
Dec 04 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
php上的memcache和memcached两个pecl库
Mar 29 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
模板引擎smarty工作原理以及使用示例
May 25 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
Jul 06 PHP
thinkPHP5框架中widget的功能与用法详解
Jun 11 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
php中时间函数date及常用的时间计算
May 12 #PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 #PHP
PHP 实现浏览记录并按日期分组
May 11 #PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 #PHP
使用WAMP搭建PHP本地开发环境
May 10 #PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 #PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 #PHP
You might like
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
类之Prototype.js学习
2007/06/13 Javascript
jQuery技巧总结
2011/01/01 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
pandas series序列转化为星期几的实例
2018/04/11 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
大学生军训自我评价分享
2013/11/09 职场文书
学习型党组织心得体会
2014/09/12 职场文书
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android