PHPExcel类库的使用
首先下载PHPEXCEL 下载地址:https://github.com/PHPOffice/PHPExcel
一、生成Excel
    <?php
    require "PHPExcel-1.8.0/Classes/PHPExcel.php";//引入PHPExcel加载文件
    $obj_PHPExcel = new PHPExcel();//实例化PHPExcel类 等同于新建一个Excel表格
    $obj_Sheet = $obj_PHPExcel->getActiveSheet(); //获得当前活动sheet的活动对象
    //$obj_PHPExcel->createSheet();//可以循环创建多个sheet,在建立多个sheet时使用
    //$obj_PHPExcel->setActiveSheetIndex(0);//设置为活动sheet 从0开始
    //$obj_Sheet = $obj_PHPExcel->getActiveSheet(); //获得当前活动sheet的活动对象
    $obj_Sheet->setTitle('s1');//设置当前活动Sheet名称
    //1.逐个单元格进行填充
    //$obj_Sheet->setCellValue("A1", "姓名")->setCellValue("B1", "分数");//填充数据
    //$obj_Sheet->setCellValue("A2", "张三")->setCellValue("B2", "50");//填充数据
    //$obj_PHPExcel->getActiveSheet()->mergeCells('A1:F1');//合并单元格A1:F1(起始坐标,结束坐标)
    //$obj_PHPExcel->getActiveSheet()->unmergeCells('A1:F1');// 拆分单元格
    $obj_Sheet->getDefaultStyle()->getAlignment() //设置居中显示
        ->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER)//垂直居中
        ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平居中
    //2.传入数组的方式填充
    //$obj_Sheet->fromArray([
    //    ['标题1','标题2'], //第一个数组为第一行,数组的第一个元素为第一列
    //    ['1','2'],
    //    ['3','4'],
    //    ['5','6'],
    //    ['7','8'],
    //    ['9','0'],
    //]);
    $result = [
        ['id' => 'ID号',                'name' => '用户',    'pwd' => '密码',   'addr' => '地址'],
        ['id' => '2w5s2525dw88ee8wq87', 'name' => 'test01', 'pwd' => '123456', 'addr' => '广州'],
        ['id' => 'd15as6ds1d6as11das6', 'name' => 'test02', 'pwd' => '123456', 'addr' => '广州'],
        ['id' => 'eq4wqw564e56wq46e4w', 'name' => 'test03', 'pwd' => '123456', 'addr' => '广州'],
        ['id' => 'dasx4zx56c4x564c56a', 'name' => 'test04', 'pwd' => '123456', 'addr' => '广州'],
        ['id' => 'we6qw456eq4w56e4q56', 'name' => 'test05', 'pwd' => '123456', 'addr' => '广州'],
        ['id' => 'd4as56d1456q4545454', 'name' => 'test06', 'pwd' => '123456', 'addr' => '广州'],
        ['id' => 'e4qw64e6qw46eq46447', 'name' => 'test07', 'pwd' => '123456', 'addr' => '广州'],
        ['id' => '6e4q6we8qw7e89wq78e', 'name' => 'test08', 'pwd' => '123456', 'addr' => '广州'],
        ['id' => 'e897e9qw87e98qw798e', 'name' => 'test09', 'pwd' => '123456', 'addr' => '广州'],
    ];
    $obj_Sheet->fromArray($result);//填充数组
    $obj_Writer = PHPExcel_IOFactory::createWriter($obj_PHPExcel, 'Excel2007');//创建工厂对象
    //操作1 保存文件
    //$obj_Writer->save('demo.xlsx');//执行保存文件
    //操作2 输出浏览器
    browser_export('demo', false);
    $obj_Writer->save('php://output');
    //输出到浏览器 判断文件类型
    function browser_export($filename, $type = 'Excel5'){
        // Redirect output to a client’s web browser (Excel5)
        if ($type == 'Excel5') {
            $ext = '.xls';
            header('Content-Type: application/vnd.ms-excel');//输出excel03文件
        }
        else {
            $ext = '.xlsx';
            header('Content-Type: application/vnd.openxmlformats-   officedocument.spreadsheetml.sheet');//输出excel07文件
        }
        header('Content-Disposition: attachment;filename="'.$filename.$ext.'"');//输出文件的名称
        header('Cache-Control: max-age=0');//禁止缓存
    }
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 - 46
 - 47
 - 48
 - 49
 - 50
 - 51
 - 52
 - 53
 - 54
 - 55
 - 56
 - 57
 - 58
 - 59
 - 60
 - 61
 - 62
 - 63
 - 64
 - 65
 - 66
 - 67
 - 68
 - 69
 - 70
 - 71
 - 72
 - 73
 - 74
 - 75
 
二、导入Excel
<?php
header('Content-type:text/html;charset=UTF-8');
require "PHPExcel-1.8.0/Classes/PHPExcel/IOFactory.php";//引入读取excel类文件
$filename = __DIR__.'/demo.xlsx';//需要导入的excel路径
//1.部分加载
$file_type = PHPExcel_IOFactory::identify($filename);//读取文件类型
$obj_reader = PHPExcel_IOFactory::createReader($file_type);//获取文件操作对象
$obj_reader->setLoadSheetsOnly('s1');//只读取sheet的名称 多个可以用数组array(sheet1,sheet2...)
$obj_PHPExcel = $obj_reader->load($filename);//加载文件
//2.全部加载
//$obj_PHPExcel = PHPExcel_IOFactory::load($filename); //加载文件
//$sheet_count = $obj_PHPExcel->getSheetCount(); //获取文件sheet数量
/*1.全部读取
for ($i=0; $i < $sheet_count; $i++) {
    $data = $obj_PHPExcel->getSheet($i)->toArray();//读取每个sheet的数据放入数组中
    var_dump($data);
}
*/
/*2.逐行读取*/
foreach ($obj_PHPExcel->getWorksheetIterator() as $sheet) { //循环读取sheet
    foreach ($sheet->getRowIterator() as $row) { //逐行处理
        //去除头部,只显示数据
        if ($row->getRowIndex() < 2 ){
            continue;
        }
        foreach ($row->getCellIterator() as $cell) { //逐列获取
            $data = $cell->getValue();//读取单元格数据
            echo $data.' ';
        }
        echo "<br>";
    }
    echo "<br>";
}
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 
三、前端下载excel
1.生成excel文件 使用html5 download属性
<a href="http://localhost/PHPExcel/demo.xlsx" download="demo.xlsx">Download file</a>
2.执行PHP脚本 直接输出到浏览器
<a href="http://localhost/PHPExcel/import.php" >Download file</a>
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 
PHP直接生成excel文件
 header("Content-Type: application/vnd.ms-excel");
 header("Content-Disposition:filename={$file_name}.xls");
 header("Pragma: no-cache");
 header("Expires: 0");
 //此种方法直接输出html表格 因为Excel的兼容性可以打开,但不是真正的excel表格
 echo '<html xmlns:x="urn:schemas-microsoft-com:office:excel">';
 echo '<meta http-equiv="Content-type" content="text/html;charset=utf-8" /> ';
 echo $excel_content;//直接输出html的表格代码
 echo '</html>';
}
转载:https://blog.csdn.net/qq_38044604/article/details/77771297
												
											PHPExcel类库的使用的更多相关文章
- 基于PHPExcel常用方法总结(phpexcel类库实例)
		
分享下对PHPExcel的常用方法进行详细的总结与分析. 对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指 ...
 - Thinkphp之PHPExcel类库函数的官方读取的几个例子
		
1.使用 PHPExcel_IOFactory 读取文件 $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 2.使用一个特定的读取类,读 ...
 - thinkphp 3.2与phpexcel
		
thinkphp版本:3.2 1.在http://phpexcel.codeplex.com/下载最新PHPExcel 2.把Classes目录下的文件(PHPExcel.php和PHPExcel文件 ...
 - Thinkphp 3.2.2 利用phpexcel完成excel导出功能
		
首先百度搜索phpexcel 包,放到项目的这个目录下 接下来 是controller里的导出代码 /**导出预定产品用户信息 * 大白驴 675835721 *2016-12-12 **/pub ...
 - Thinkphp 用PHPExcel 导入Excel
		
搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有P ...
 - PHPExcel创建文件格式写入对象实例
		
首先到http://www.codeplex.com/PHPExcel下载PHPExcel 下面就是php导出excel的程序 <?phpini_set("display_errors ...
 - thinkphp3.2整合phpexcel
		
由于thinkphp3.2使用命名空间,而 PHPExcel没有使用,那么两者整合的最重要问题就是如何导入的问题. 一.PHPExcel.php和PHPExcel文件夹都放在ThinkPHP/Libr ...
 - phpexcel简单用法
		
<?php /*php生成excel完整实例代码现求:php生成excel完整实例代码最好能说明如何调用!谢谢java_sunhui4 | 浏览 8131 次 2014-09-24 14:502 ...
 - php:PHPExcel导出excel表格
		
一.动态生成的内容如何能当成文件来下载呢? 方法:1.将Content-Type设置成application/octet-stream就可以了,即[header('Content-Type: appl ...
 
随机推荐
- 谈谈开发文本转URL小工具的思路
			
URL提供了一种定位互联网上任意资源的手段,由于采用HTTP协议的URL能在互联网上自由传播和使用,所以能大行其道.在软件开发.测试甚至部署的环节,URL几乎可以说无处不再,其中用来定位文本的URL数 ...
 - strstr()查找函数,strchr(),strrchr(),stristr()/strpos(),strrpos()查找字符串位置
			
在一个较长的字符串这查找匹配的字符串或字符,其中strstr()和strchr()是完全一样的. 例: echo strstr('why always you','you'); 输出: you 如果为 ...
 - 解决swfupload改变display属性后flash重新加载的问题(chome,safari内核的所有浏览器)
			
最近在做的项目中有要用到上传控件,所有就用到了swfupload flash上传控件 因为在项目中要使用到Tab控件,tab控件通过改变display属性来控制tab页的显 示与隐藏.当swfuplo ...
 - win10获取超级管理员权限脚本实现
			
建立一个TXT文件,把下面的脚本贴到里面,然后把后缀改成reg格式,双击添加到注册表就可以了, win10_1703版本亲测可用.... Windows Registry Editor Version ...
 - JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-004Table per class hierarchy(@Inheritance..SINGLE_TABLE)、@DiscriminatorColumn、@DiscriminatorValue、@DiscriminatorFormula)
			
一.结构 You can map an entire class hierarchy to a single table. This table includes columns for all pr ...
 - Luogu 4216 [SCOI2015]情报传递
			
BZOJ 4448. 写起来很愉悦的题. 按照时间可持久化线段树,修改就在原来的地方加$1$即可,查询就直接询问$root_1 - root_{now - c - 1}$中相应的个数. 主席树维护树链 ...
 - python基本概念——标识符
			
标识符是用来标识某样东西的名字.在命名标识符的时候,你要遵循这些规则: 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’). 标识符名称的其他部分可以由字母(大写或小写) ...
 - Google androd性能优化经典
			
2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关 ...
 - Xcode编译报错信息总结
			
1.dyld: Library not loaded: @rpath/.../xxx.framework 一般与这个库的加载路径有关,先看看是否将静态库设置成了动态库(库的Mach-o Type选项) ...
 - Web Server  在iis下部署php网站在iis下
			
Web Server 在iis下部署php网站在iis下 一.参考地址: windows8 http://www.cnblogs.com/haocool/archive/2012/10/14/win ...