首先下载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类库的使用的更多相关文章

  1. 基于PHPExcel常用方法总结(phpexcel类库实例)

    分享下对PHPExcel的常用方法进行详细的总结与分析. 对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指 ...

  2. Thinkphp之PHPExcel类库函数的官方读取的几个例子

    1.使用 PHPExcel_IOFactory 读取文件 $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 2.使用一个特定的读取类,读 ...

  3. thinkphp 3.2与phpexcel

    thinkphp版本:3.2 1.在http://phpexcel.codeplex.com/下载最新PHPExcel 2.把Classes目录下的文件(PHPExcel.php和PHPExcel文件 ...

  4. Thinkphp 3.2.2 利用phpexcel完成excel导出功能

    首先百度搜索phpexcel  包,放到项目的这个目录下 接下来  是controller里的导出代码 /**导出预定产品用户信息 * 大白驴 675835721 *2016-12-12 **/pub ...

  5. Thinkphp 用PHPExcel 导入Excel

    搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有P ...

  6. PHPExcel创建文件格式写入对象实例

    首先到http://www.codeplex.com/PHPExcel下载PHPExcel 下面就是php导出excel的程序 <?phpini_set("display_errors ...

  7. thinkphp3.2整合phpexcel

    由于thinkphp3.2使用命名空间,而 PHPExcel没有使用,那么两者整合的最重要问题就是如何导入的问题. 一.PHPExcel.php和PHPExcel文件夹都放在ThinkPHP/Libr ...

  8. phpexcel简单用法

    <?php /*php生成excel完整实例代码现求:php生成excel完整实例代码最好能说明如何调用!谢谢java_sunhui4 | 浏览 8131 次 2014-09-24 14:502 ...

  9. php:PHPExcel导出excel表格

    一.动态生成的内容如何能当成文件来下载呢? 方法:1.将Content-Type设置成application/octet-stream就可以了,即[header('Content-Type: appl ...

随机推荐

  1. vue-cli脚手架build目录中的karma.conf.js配置文件

    本文系统讲解vue-cli脚手架build目录中的karma.conf.js配置文件 这个配置文件是命令 npm run unit 的入口配置文件,主要用于单元测试 这条命令的内容如下 "c ...

  2. 01-20Asp.net--Linq语法

    Linq语法--语言集成查询 同Sqlserver语句,但顺序颠倒了. 使用方法: 新建Linq类.dbml结尾的文件 在web窗体源代码中设计表,使用Repeater中转存放: <asp:Re ...

  3. 问题:oracle decode;结果:oracle中的decode的使用

    oracle中的decode的使用 Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件 ...

  4. URL与HTTP介绍

    一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位置,互联网上的每个资源 ...

  5. 监控和安全运维 1.5 nagios监控客户端-1

    3. Nagios安装 - 客户端(192.168.0.12)在客户端机器上 rpm -ivh http://www.aminglinux.com/bbs/data/attachment/forum/ ...

  6. 4-EasyNetQ之Logging(黄亮翻译)

    EasyNetQ提供了一个Logger接口 IEasyNetQLogger: public interface IEasyNetQLogger { void DebugWrite(string for ...

  7. re 模块 常用正则表达式符号 最常用的匹配语法

      常用正则表达式符号1 '.'     默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^'     匹配字符开头,若指定flags MULTILINE, ...

  8. solr-用mmseg4j配置同义词索引和检索(IKanlyzer需要修改源码适应solr接口才能使用同义词功能)

    概念说明:同义词大体的意思是指,当用户输入一个词时,solr会把相关有相同意思的近义词的或同义词的term的语段内容从索引中取出,展示给用户,提高交互的友好性(当然这些同义词的定义是要在配置文件中事先 ...

  9. 深入理解js的变量提升和函数提升(转)

    一.变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分.上个简历的例子如: ...

  10. c++调用python引号的问题

    Boost.Python向python里面传递字符串时,引号是个很关键的问题. const char* cstr="hello \\\" world" // hello ...