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 ...
随机推荐
- 在.net中使用redis(StackExchange.Redis)
本文介绍如何在.net中使用redis 安装 代码使用 StackExchange.Redis基础使用 StackExchange.Redis中的事务 安装(windows平台) 安装Chocolat ...
- log4j配置文件加载方式
使用背景: apache的log4j是一个功能强大的日志文件,当我们使用eclipse等IDE在项目中配置log4j的时候,需要知道我们的配置文件的加载方式以及如何被加载的. 加载方式: (1).自动 ...
- Java陷阱一箩筐----面试题集及解答
Java陷阱一箩筐----面试题集及解答 面试是没什么道理可讲的,它的题目有的不合情理.脱离实际.有在纸上写的,有当面考你的,也有在电话里问的,给你IDE的估计很少. 当然这些都是Java的基本题,那 ...
- NDK 编译报错:request for member 'FindClass' in something not a structure or union
ndk编译 xx.c文件时一直报下面的错误: ”request for member 'FindClass' in something not a structure or union ...” 原因 ...
- Linux split命令实例
曾经是否想要把一个大文件分割成多个小文件?比如一个5gb日志文件,我们需要把它分成多个小文件,这样我们才有可能使用普通的文本编辑器读取它.有时我们需要传输20gb的大文件到另一台服务器,这就需要我们把 ...
- python爬虫实战(3)--图片下载器
本篇目标 1.输入关键字能够根据关键字爬取百度图片 2.能够将图片保存到本地文件夹 1.URL的格式 进入百度图片搜索apple,这时显示的是瀑布流版本,我们选择传统翻页版本进行爬取.可以看到网址为: ...
- 激活 jave platform se
1.有的网页上面会显示这个,但是点击后没反应 解决方案: firefox- >工具-附加组件管理器-“插件” 找到“Java(TM) Platform SE 7”,把“询问是否激活”改为“总是激 ...
- sort排序应用
private static int SortTestObj2Compare(TestSortClass obj1, TestSortClass obj2) { ...
- [hdu1251]统计难题(trie模板题)
题意:返回字典中所有以测试串为前缀的字符串总数. 解题关键:trie模板题,由AC自动机的板子稍加改造而来. #include<cstdio> #include<cstring> ...
- unity3D中制作天空盒(Skyboxes)
1.首先制作图片,需要把图片用Ps制作成psd格式,制作6张 2.把6个psd文件导入工程目录 Assets下, 3.在project属性列表中选中Assets,单击鼠标右键选择 Create —&g ...