本文引自网络,仅供自己学习之用。

利用php导出excel我们大多会直接生成.xls文件,这种方便快捷。

  1. function createtable($list,$filename){
  2. header("Content-type:application/vnd.ms-excel");
  3. header("Content-Disposition:filename=".$filename.".xls");
  4. $strexport="编号\t姓名\t性别\t年龄\r";
  5. foreach ($list as $row){
  6. $strexport.=$row['id']."\t";
  7. $strexport.=$row['username']."\t";
  8. $strexport.=$row['sex']."\t";
  9. $strexport.=$row['age']."\r";
  10. }
  11. $strexport=iconv('UTF-8',"GB2312//IGNORE",$strexport);
  12. exit($strexport);
  13. }

基于这个我们可以将方法封装一下:

  1. /**
  2. * 创建(导出)Excel数据表格
  3. * @param  array   $list 要导出的数组格式的数据
  4. * @param  string  $filename 导出的Excel表格数据表的文件名
  5. * @param  array   $header Excel表格的表头
  6. * @param  array   $index $list数组中与Excel表格表头$header中每个项目对应的字段的名字(key值)
  7. * 比如: $header = array('编号','姓名','性别','年龄');
  8. *       $index = array('id','username','sex','age');
  9. *       $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));
  10. * @return [array] [数组]
  11. */
  12. protected function createtable($list,$filename,$header=array(),$index = array()){
  13. header("Content-type:application/vnd.ms-excel");
  14. header("Content-Disposition:filename=".$filename.".xls");
  15. $teble_header = implode("\t",$header);
  16. $strexport = $teble_header."\r";
  17. foreach ($list as $row){
  18. foreach($index as $val){
  19. $strexport.=$row[$val]."\t";
  20. }
  21. $strexport.="\r";
  22. }
  23. $strexport=iconv('UTF-8',"GB2312//IGNORE",$strexport);
  24. exit($strexport);
  25. }

方法调用:

  1. $filename = '提现记录'.date('YmdHis');
  2. $header = array('会员','编号','联系电话','开户名','开户行','申请金额','手续费','实际金额','申请时间');
  3. $index = array('username','vipnum','mobile','checkname','bank','money','handling_charge','real_money','applytime');
  4. $this->createtable($cash,$filename,$header,$index);

运行就可以得到表格:


这种方式生成Excel文件,生成速度很快,但是有缺点是:
1.单纯的生成Excel文件,生成的文件没有样式,单元格属性(填充色,宽度,高度,边框颜色...)不能自定义;
2.生成的文件虽然可以打开,但是兼容性很差,每次打开,都会报一个警告:

解决这个问题也不难,具体参见:使用PHPExcel实现Excel文件的导入和导出

PHP生成excel表格文件并下载的更多相关文章

  1. Java操作Jxl实现导出数据生成Excel表格数据文件

    实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...

  2. php中读写excel表格文件示例。

    测试环境:php5.6.24.这块没啥兼容问题. 需要更多栗子,请看PHPExcel的examples.还是蛮强大的. 读取excel文件. 第一步.下载开源的PHPExcel的类库文件,官方网站是h ...

  3. H5纯前端生成Excel表格

    H5纯前端生成Excel表格方法如下: <!DOCTYPE html> <html> <head> <title></title> < ...

  4. Jmeter—生成excel结果文件

    相信很多用jmeter进行接口测试的童鞋都会有这样的苦恼:同时执行上百条测试案例,如何能轻松加愉快地检查案例输出结果?仅仅靠jmeter的断言.debug sampler.察看结果树等是无法满足我们要 ...

  5. pyhton读取 excel表格文件

    2019的第一天,忘记昨日之事,迎接新的明天. excel表格文件办公中常用,如通过Python操作这些数据需导入并有序读取这些数据 特随笔,供以后查阅 代码如下: import xlrd # fil ...

  6. JXL生成Excel,并提供下载(2:提供下载)

    实现效果: 项目中使用JXL生成Excel,使生成的Excel可以让用户下载,如下图 一.生成Excel 二.提供下载 实现思路: 1.页面使用form表单提交方式(Ajax提交方式,我这里不行) 2 ...

  7. python读取Excel表格文件

    python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...

  8. 详解python操作生成excel表格,并且填充数据

    最近在研究python操作excel表格的问题,首先读取excel表格觉得平时用的多,不怎么有难度,就是pyhon生成excel表格的时候,平时不怎么用,所以重点研究了一下,现总结如下: 1.首先用到 ...

  9. 简单Excel表格上传下载,POI

    一.废话 Excel表格是office软件中的一员,几乎是使用次数最多的办公软件.所以在java进行企业级应用开发的时候经常会用到对应的上传下载便利办公. 目前,比较常用的实现Java导入.导出Exc ...

随机推荐

  1. 第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍

    第16课-数据库开发及ado.net 数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍 SQL语句入门(脚本.命令) SQL全名是结构化查询语言(Structur ...

  2. .net 多线程的使用(Thread)

    上篇 net 同步异步 中篇 多线程的使用(Thread) 下篇 net 任务工厂实现异步多线程 Thread多线程概述 上一篇我们介绍了net 的同步与异步,我们异步演示的时候使用的是委托多线程来实 ...

  3. BestCoder Round #29——A--GTY's math problem(快速幂(对数法))、B--GTY's birthday gift(矩阵快速幂)

    GTY's math problem Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  4. 杭电acm习题分类

    专注于C语言编程 C Programming Practice Problems (Programming Challenges) 杭电ACM题目分类 基础题:1000.1001.1004.1005. ...

  5. Python-模拟键盘输入的代码片段

    特别说明:要先安装pywind32类库!!! import win32apiimport win32conimport win32guifrom ctypes import *import time ...

  6. 转载文章CSS3的calc()使用

    calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分.因为看其外表像个函数,既然是函数为何又出现在CSS中呢?这一点也让我百思不得其解,今天有一同事告诉我,说CSS3中有一个属性 ...

  7. js-ES6学习笔记-Proxy(2)

    1.has方法用来拦截HasProperty操作,即判断对象是否具有某个属性时,这个方法会生效.典型的操作就是in运算符. var handler = { has (target, key) { if ...

  8. AJAX的一些基础和AJAX的状态

    大佬们,我又回来了,最近好几天都没写博客了,别问我干啥去了,我只是去围观奶茶妹变成抹茶妹而已 前几天我们一起封装了一个AJAX,那今天我们来说说AJAX的一些基础和AJAX的状态码 首先,啥是AJAX ...

  9. Django使用多个数据库

    一.定义数据库 使用Django的多个数据库的第一步是告诉Django将使用的数据库服务器. 这是使用DATABASES设置完成的. 此设置将数据库别名映射到该特定连接的设置字典,该数据库别名是一种在 ...

  10. SharePoint designer workflow给一个hyperlink类型得field赋值, How to set value to a hyperlink field by designer workflow

    通过worlfow给一个链接类型得field赋值: 格式是: {link}, {linkDisplayname} 一定要注意逗号后面有个空格. 举个栗子: 如果一个链接显示为 Approve / Re ...