今日项目需求导出excel。我用最简单的header头方式导出了,但是需求部门退回了,说不满足他们的需求,需要我按照他们的模板来导出。

然后想到了PHPExcel,没用过,走了不少弯路。

1.去官网下载最新的包。

2.普通的导出(和普通Header头导出的一样)。

 1                 import("Org.Util.PHPExcel");
 2         import("Org.Util.PHPExcel.Writer.Excel5");
 3         import("Org.Util.PHPExcel.IOFactory.php");
 4         import("Org.Util.PHPExcel.Worksheet.Drawing");
 5         $date = date("Y_m_d",time());
 6         $fileName = $date.".xls";
 7         $objPHPExcel = new \PHPExcel();
 8         $objProps = $objPHPExcel->getProperties();
 9         $objActSheet = $objPHPExcel->setActiveSheetIndex(0);
10         $objActSheet->setCellValue('A1', '订单号');
11         $objActSheet->setCellValue('B1', '退货单号');
12         $objActSheet->setCellValue('C1', '生成时间');
13         $objActSheet->setCellValue('D1', '商品名称');
14         $objActSheet->setCellValue('E1', '物料编码');
15         $objActSheet->setCellValue('F1', '退货工单号');
16         $objActSheet->setCellValue('G1', '退款单号');
17         $n=2;
18         foreach($list as $value){
19             $where = array(
20                 'back_id'=>$value['back_id']
21             );
22             $getDetial = $db->table('back_goods')->where($where)->find();
23             $objActSheet->setCellValueExplicit('A'.$n, $value['order_sn']);
24             $objActSheet->setCellValueExplicit('B'.$n, $value['back_sn']);
25             $objActSheet->setCellValue('C'.$n, date('Y-m-d H:i:s',$value['add_time']));
26             $objActSheet->setCellValue('D'.$n, $getDetial['goods_name']);
27             $objActSheet->setCellValue('E'.$n, $getDetial['goods_sn']);
28             $objActSheet->setCellValue('F'.$n, '');
29             $objActSheet->setCellValue('G'.$n, '');
30             $n++;
31         }
32         $fileName = iconv("utf-8", "gb2312", $fileName);
33         header('Content-Type: application/vnd.ms-excel');
34         header("Content-Disposition: attachment;filename=\"$fileName\"");
35         header('Cache-Control: max-age=0');
36         $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
37         $objWriter->save('php://output'); //文件通过浏览器下载

View Code

3.写入到模板excel。

 1 import("Org.Util.PHPExcel");
 2         import("Org.Util.PHPExcel.Writer.Excel5");
 3         import("Org.Util.PHPExcel.IOFactory.php");
 4         import("Org.Util.PHPExcel.Worksheet.Drawing");
 5         $PHPReader = new \PHPExcel_Reader_Excel5();
 6         $fileName="./Public/a.xls";
 7         $PHPExcel = $PHPReader->load($fileName);
 8         $objActSheet = $PHPExcel->getSheet(0);
 9         $allColumn = $objActSheet->getHighestRow();
10         $n=1+$allColumn;
11         if($data){
12             foreach($data as $k=>$v){
13                 $objActSheet->setCellValue('A'.$n, $k+1);//编号
14                 $objActSheet->setCellValue('B'.$n, $v['name']);//姓名
15                 $n++;
16             }
17         }
18 $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
19 $objWriter->save($fileName);

View Code

4.根据模板写入,并不改变模板,另存为下载。

 1 import("Org.Util.PHPExcel");
 2         import("Org.Util.PHPExcel.Writer.Excel5");
 3         import("Org.Util.PHPExcel.IOFactory.php");
 4         import("Org.Util.PHPExcel.Worksheet.Drawing");
 5         $PHPReader = new \PHPExcel_Reader_Excel5();
 6         $fileName="./Public/a.xls";
 7         $PHPExcel = $PHPReader->load($fileName);
 8         $objActSheet = $PHPExcel->getSheet(0);
 9         $allColumn = $objActSheet->getHighestRow();
10         $n=1+$allColumn;
11         if($data){
12             foreach($data as $k=>$v){
13                 $objActSheet->setCellValue('A'.$n, $k+1);//编号
14                 $objActSheet->setCellValue('B'.$n, $v['name']);//姓名
15                 $objActSheet->setCellValue('C'.$n, "");//性别?
16                 $n++;
17             }
18         }
19         $file_name="test.xls";
20         $fileName = iconv("utf-8", "gb2312", $file_name);
21         header('Content-Type: application/vnd.ms-excel');
22         header("Content-Disposition: attachment;filename=\"$fileName\"");
23         header('Cache-Control: max-age=0');
24         $objWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5');
25         $objWriter->save('php://output'); //文件通过浏览器下载

View Code

注:如果遇到xlsx模板,把new类改成2007即可。普通的xls模板直接5

转载于:https://www.cnblogs.com/inc-is-include/p/5684203.html

PHPExcel用法有感相关推荐

  1. php phpexcel用法,PHPExcel用法总结

    PHPExcel用法总结 总结一下PHPExcel的用法~ //设置PHPExcel类库的include path//这里貌似直接include类文件就可以了 # set_include_path(' ...

  2. PHPExcel用法总结

    总结一下PHPExcel的用法~ <? //设置PHPExcel类库的include path//这里貌似直接include类文件就可以了 # set_include_path('.'. PAT ...

  3. phpexcel用法(转)

    .php导出excel(多种方法) (2013-03-23 15:44:02) 转载▼   分类: php 基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只 ...

  4. PHPExcel用法(详细)

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  5. php phpexcel用法,PHPExcel用法

    导入PHPExcel.php或者其他文件 require_once 'PHPExcel.php'; require_once'PHPExcel/Writer/Excel5.php';     // 用 ...

  6. php phpexcel用法,PHPExcel中文帮助手册|PHPExcel使用方法(分享)

    include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/Writer/Excel5 ...

  7. php单元格字体颜色,PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽...

    PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽 2020-08-31 85 一:读取excel表模板$ph ...

  8. PHPExcel详细用法

    短时间想全部看了这类库,应该不容易... 一直知道这东西,但是没详细看过.文档也没有,只有别人的博客总结,找了一篇很详细的.不过真的很不错,导入和导出都有,而且各种格式支持!可能因版本不同,有不一样的 ...

  9. Laravel 上使用 phpexcel的两种方式

    原创 2017年06月24日 20:24:31 1229 文章采集与网上 方式1.使用原生的phpexcel , http://blog.csdn.net/CSwfe/article/details/ ...

最新文章

  1. 计算机科学领域最高荣誉,骄傲!这位毕业于嘉兴一中的数学家,荣获华人数学领域的最高荣誉...
  2. Activity 启动模式以及常见的启动Flag
  3. CMD下查询Mysql中文乱码的解决方法
  4. 微软上线Try .NET,支持在浏览器运行C#代码
  5. 12-Linux下Oracle 11g R2数据库安装
  6. LeetCode:62. 不同路径(python、c++)
  7. perl语言 入门(转)
  8. token是什么意思
  9. php亲戚称谓计算源码,亲戚称呼(亲戚关系计算器在线)
  10. CString提取数字
  11. 如何将CM android移植到你的设备(二)
  12. Codeforces 417D Cunning Gena(状态压缩dp)
  13. git仓库中文件较多,如何拉取指定文件到本地
  14. 基于SSM+Mysql的房屋租赁管理系统
  15. 小姐姐让我帮忙修照片
  16. 静默升级linux,Firefox 10 正式发布 支持静默升级功能
  17. 虚拟机连接不上网络的解决方案
  18. iOS view生命周期
  19. python实现加密解密功能(GUI)
  20. web网页设计实例作业 ——中国梦我的梦(3页) 学生HTML个人网页作业作品下载

热门文章

  1. Python:使用threading模块实现多线程编程三[threading.Thread类的重要函数]
  2. JavaScript——Object类型
  3. ROS学习笔记6(理解ROS话题)
  4. css写七步诗,兄弟情谊的优美句子
  5. Python中的字符串(搜索和替换、对齐、统计、分离和连接)
  6. 微信小程序有关于Linux的吗,微信小程序可以跳转到手机 app 啦!
  7. APP自动化测试系列之adb连接真机和模拟器
  8. 翁恺老师C语言学习笔记(八)数组
  9. 比特币挖矿难度上调至23.14T,创历史新高
  10. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨0.8%