如何利用PHPExcel读取Excel的数据和导出数据到Excel
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
好了,现在我们就可以用PHPExcel愉快的读取和制作表格了!
PHPExcel DEMO1:利用PHPExcel读取excel信息:
我们在根目录创建一个名为read.php的文件来读取文档,创建一个test.xlsx的文件,里面写的信息如下:
然后在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“ } |
得到的数据:
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_oncedirname(__FILE__) .'./Classes/PHPExcel.php'
// 创建Excel文件对象 $objPHPExcel=newPHPExcel(); // 设置文档信息,这个文档信息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。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!
这篇文章主要为大家详细介绍了使用WAMP搭建PHP本地开发环境的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下写在前面的话
PHP是服务器脚本语言,所以需要在服务器上才能运行。作为新手,搭建服务器可能需要捣腾很久,有可能还搞不定。所以在入门阶段,为了把更多时间用在熟悉编程语言上,使用集成环境是最好也是最方便的选择。而本文就来介绍如何在windows平台搭建PHP开发环境。
安装集成环境
1、下载集成环境包WampServer官网
本人下载的是Wampserver 3.0.6 64 bit ,下载完成之后双击安装即可。
wamp 3.0.6 安装的软件分别为:
Apache 2.4.23
PHP 5.6.25/7.0.10
MySQL 5.7.14
PhpMyAdmin 4.6.4
Adminer 4.2.5
PhpSysInfo 3.2.5
* apache 2.4及以上版本与2.4以下版本的配置会有些不同
* wamp会同时安装PHP5和PHP7,安装完成之后可以进行切换使用
2、安装过程出现错误
若安装过程中出现提示缺少 msvcr110.dll 等文件,请先下载vcredist_x64.exe安装wamp所需环境。
服务器配置
1、项目路径
安装好wamp后,在安装路径下有个www文件夹,该文件夹用于存放你的项目文件,在这个目录下的文件才会被服务器识别和执行。
例如:我安装wamp时选中的目录为
D:\wamp64
则安装后的存放项目文件目录为
D:\wamp64\www
当然,如果不想使用默认的www文件夹,也可以修改apache配置,指定目录让服务器解析。
在安装目录下找到apache的配置文件httpd.conf
安装目录\bin\apache\apache2.4.23\conf\httpd.conf
使用记事本或者其他编辑器打开文件,找到
代码如下 | 复制代码 |
DocumentRoot "${INSTALL_DIR}/www" ... |
把${INSTALL_DIR}/www修改为需要指定的目录
然后,同样在该目录中找到httpd-vhosts.conf文件
代码如下 | 复制代码 |
extra\httpd-vhosts.conf
#打开文件↓
ServerName localhost DocumentRoot D:/wamp64/www ...
|
修改D:/wamp64/www为需要指定的目录即可。这样以后服务器就会解析这个目录下的文件了。
*修改配置之后要记得重启服务器
2、测试
新建一个项目测试服务器是否可用。
在www文件夹下新建一个test文件夹,文件夹中新建一个test.php,php文件中写上一些输出语句。例如程序员入门必写的一句话:
echo 'Hello World!'
之后打开浏览器,在地址栏输入
localhost/test/test.php
如果你的浏览器有显示Hello World!字样,就说明你的服务器可以使用了。
3、配置虚拟主机
不喜欢以localhost/项目文件名/xxx.php/…这种方式进行访问?那可以配置虚拟主机,配置后可以通过类似www.test.com(可自定义)这种形式访问。
首先找到httpd-vhosts.conf文件并打开
安装目录\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf
在文件末尾添加
代码如下 | 复制代码 |
#设置主机名(可自己设置) ServerName www.test.com #设置主机别名,即用该别名也可以访问(前提是域名解析正确) ServerAlias test.com #设置该站点根目录 DocumentRoot "D:\wamp64\www\test" #设置文件夹访问控制,其路径要和上一行的DocumentRoot一样, #用于显示设定“可显示文件列表”(当无可显示网页的时候) Options Indexes #启用文件夹访问控制的文件.htaccess设置 AllowOverride All #请求控制 Require all granted #默认打开的页面设置 DirectoryIndex index.php index.html
|
然后,找到hosts文件,win10的hosts文件路径为:
代码如下 | 复制代码 |
C:\Windows\System32\drivers\etc #每个系统都不一样,可以去问问百度 |
在文件末尾处添加127.0.0.1www.test.com(注意中间的空格不要丢),保存。
*如果保存提示另存为的话,可以先另存为,然后修改另存为的文件名为hosts,覆盖掉原来的hosts文件
代码如下 | 复制代码 |
... # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a'#'symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost
127.0.0.1www.test.com |
修改hosts的目的是为了在浏览器访问时,系统不会把域名(www.test.com)提交到DNS服务器,而是直接根据hosts文件找到IP地址(此时是本地),提交解析。这样我们本地的服务器就可以解析这个域名了。
4、局域网远程访问
如果需要在局域网中能通过链接访问站点(例如开发web app时使用手机测试),那么就需要开启服务器远程访问权限了。
打开apache配置文件httpd.conf
安装目录\bin\apache\apache2.4.23\conf\httpd.conf
修改AllowOverride和Require配置为如下
代码如下 | 复制代码 |
DocumentRoot "${INSTALL_DIR}/www" ... AllowOverride all Require all granted ... |
同时需要修改httpd-vhosts.conf文件,修改相同的配置
代码如下 | 复制代码 |
ServerName localhost DocumentRoot D:/wamp64/www ... AllowOverride All Require all granted
|
若只需要访问其中某一个站点,则首先需要给这个站点配置虚拟主机,然后在该虚拟主机的配置中修改AllowOverride和Require
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。
这篇文章主要介绍了PHP 实现浏览记录并按日期分组的实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下现有测试数据如下,要求实现如下图中的效果:
代码如下 | 复制代码 |
array(4) { [0] =>array(6) { ["visit_id"] => int(127) ["goods_id"] => int(16) ["visittime"] => int(1494399935) ["goods_name"] => string(53)"OPPO R9s 全网通4G+64G 双卡双待手机 玫瑰金" ["shop_price"] => string(6)"500.00" } [1] =>array(6) { ["visit_id"] => int(124) ["goods_id"] => int(13) ["visittime"] => int(1494399921) ["goods_name"] => string(76)"SIEMENS/西门子 KA92NV09TI双开门家用对开门电冰箱变频旗舰款" ["shop_price"] => string(7)"4000.00" } [2] =>array(6) { ["visit_id"] => int(123) ["goods_id"] => int(27) ["visittime"] => int(1494399903) ["goods_name"] => string(85)"爱他美白金版Aptamil 幼儿配方奶粉3段(12-36个月适用)900g(欧洲进口)" ["shop_price"] => string(6)"329.00" } [3] =>array(6) { ["visit_id"] => int(120) ["goods_id"] => int(26) ["visittime"] => int(1494224263) ["goods_name"] => string(21)"欢乐谷免票一张" ["shop_price"] => string(5)"50.00" } } |
还没实现之前我想这个代码不知道要O(n)呢还是更高的复杂度才能实现,细想一下,其实php的数组底层就是哈希实现的,如何简单利用这个特性使复杂度降到O(1)呢?
代码如下 | 复制代码 |
show me the code: /* 浏览记录按日期分组 */ functiongroupVisit($visit) { $curyear=date('Y'); $visit_list= []; foreach($visitas$v) { if($curyear==date('Y',$v['visittime'])) { $date=date('m月d日',$v['visittime']); }else{ $date=date('Y年m月d日',$v['visittime']); } $visit_list[$date][] =$v; } return$visit_list; } |
说明:入参 $visit 就是上面一开始的测试数据,函数中还对用户体验做了一些优化,比如,你的浏览记录中总是显示出今年的年份,是不是感觉有点冗余,所以如果是本年份的话,年份就要隐藏起来,其他年份还是照样显示出来。不然代码会更加简洁。
好了上面的测试数据经过该函数之后,再把返回值打印出来,有:
代码如下 | 复制代码 |
array(2) { ["05月10日"] =>array(3) { [0] =>array(6) { ["visit_id"] => int(127) ["goods_id"] => int(16) ["visittime"] => int(1494399935) ["goods_name"] => string(53)"OPPO R9s 全网通4G+64G 双卡双待手机 玫瑰金" ["shop_price"] => string(6)"500.00" } [1] =>array(6) { ["visit_id"] => int(124) ["goods_id"] => int(13) ["visittime"] => int(1494399921) ["goods_name"] => string(76)"SIEMENS/西门子 KA92NV09TI双开门家用对开门电冰箱变频旗舰款" ["shop_price"] => string(7)"4000.00" } [2] =>array(6) { ["visit_id"] => int(123) ["goods_id"] => int(27) ["visittime"] => int(1494399903) ["goods_name"] => string(85)"爱他美白金版Aptamil 幼儿配方奶粉3段(12-36个月适用)900g(欧洲进口)" ["shop_price"] => string(6)"329.00" } } ["05月08日"] =>array(1) { [0] =>array(6) { ["visit_id"] => int(120) ["goods_id"] => int(26) ["visittime"] => int(1494224263) ["goods_name"] => string(21)"欢乐谷免票一张" ["shop_price"] => string(5)"50.00" } } } |
对的,这正是我想要的效果。
以上所述是小编给大家介绍的PHP 实现浏览记录并按日期分组,希望对大家有所帮助。在此也非常感谢大家对本网站的支持!
本文介绍了PHP两种实现无级递归分类的方法,非常实用,有兴趣的同学快来看看吧
代码如下 | 复制代码 |
/** * 无级递归分类 TP框架 * @param int $assortPid 要查询分类的父级id * @param mixed $tag 上下级分类之间的分隔符 * @return string $tree 返回的分类树型结构结果 * */ functionrecursiveAssort($assortPid,$tag='') { $assort= M('goods_class')->where("class_pid = $assortPid")->field('class_id, class_name')->select(); foreach($assortas$value) { $tree.=' $tree.= recursiveAssort($value['class_id'],$tag.' '); } return$tree; } |
代码如下 | 复制代码 |
/** * 利用php的引用传递 CI框架 * */ publicfunctionget_access() { $access=array(); $field='id, pid, method, name, description' $q_access=$this->db->select($field)->get('access'); $q_result=$q_access->result_array(); if(!empty($q_result)) { $items=array(); foreach($q_resultas$value) { $items[$value['id']] =$value; } foreach($itemsas$key=>$item) { if($item['pid'] == 0) { $access[] = &$items[$key]; }else{ $items[$item['pid']]['sub_access'][] = &$items[$key]; } } } return$access; } |
相关文章
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
- 这篇文章主要介绍了c# 如何对CSV文件操作,帮助大家更好的理解和学习C#,感兴趣的朋友可以了解下...2020-11-03
- 本文主要介绍了python读取和保存mat文件的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-25
- 首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!--...2016-09-20
- perl CPAN中有一个Tie-File 模块极大方便了对大文件的操作...2020-06-29
使用MSScriptControl 在 C# 中读取json数据的方法
下面小编就为大家带来一篇使用MSScriptControl 在 C# 中读取json数据的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25- 这篇文章主要介绍了C#实现appSettings节点读取与修改的方法,是非常实用的技巧,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了Java读取PDF中的表格的方法示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-22
- 这篇文章主要介绍了R语言读取csv文件出错的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 下在看一个利用fopen,file_get_contents读取本地服务器中.php文件的代码并显示的一些方法总结 如我有两个文件a.php,b.php。 a.php文件中的语句是: 代码如...2016-11-25
- 这篇文章主要介绍了golang文件读取-按指定BUFF大小读取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-22
- 这篇文章主要介绍了Windows系统中使用C#读取文本文件内容的小示例,包括一次一行地读取文本文件的方法,需要的朋友可以参考下...2020-06-25
phpexcel导入xlsx文件报错xlsx is not recognised as an OLE file 怎么办
phpexcel是一款php读写excel的插件了,小编有一个这样的功能要来实现,但是在导入xlsx时发现xlsx is not recognised as an OLE file 了,但是导入xls是没有问题了,碰到这种...2016-11-25- 这篇文章主要介绍了python 根据excel中颜色区分读取的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-06
- 这篇文章主要介绍了C#使用文件流读取文件的方法,涉及C#中FileInfo类操作文件的技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了基于Python正确读取资源文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-14
- 这篇文章主要介绍了mybatis-plus读取JSON类型的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-25
- PHPExcel是php的一个插件,它可以实现读取excel文件也就是xls文件了,下面我们就来看一个PHPExcel操作excel(xls)文件例子,希望能帮助到各位。 读取中文的xls、csv文件...2016-11-25
- 这篇文章主要介绍了C#实现把txt文本数据快速读取到excel中,本文直接给出示例代码,需要的朋友可以参考下...2020-06-25