excel.php是个小型的php类库,可以满足基本的从数据库中取出数据然后导出xls格式的excel文件,代码如下:

  1 class Excel {
2 public $filename = 'excel';
3 public $custom_titles;
4
5 public function make_from_db($db_results)
6 {
7 $data = NULL;
8 $fields = $db_results->field_data();
9 if ($db_results->num_rows() == 0)
10 {
11 show_error('The table appears to have no data');
12 }
13 else
14 {
15 $headers = $this->titles($fields);
16 foreach ($db_results->result() AS $row)
17 {
18 $line = '';
19 foreach ($row AS $value)
20 {
21 if (!isset($value) OR $value == '')
22 {
23 $value = "\t";
24 }
25 else
26 {
27 $value = str_replace('"', '""', $value);
28 $value = '"' . $value . '"' . "\t";
29 }
30 $line .= $value;
31 }
32 $data .= trim($line) . "\n";
33 }
34 $data = str_replace("\r", "", $data);
35 $this->generate($headers, $data);
36 }
37 }
38
39 public function make_from_array($titles, $array, $filename = 'excel')
40 {
41 $data = NULL;
42 $this->filename = $filename;
43
44 if ( ! is_array($array))
45 {
46 show_error('The data supplied is not a valid array');
47 }
48 else
49 {
50 $headers = $this->titles($titles);
51 if (is_array($array))
52 {
53 foreach ($array AS $row)
54 {
55 $line = '';
56 foreach ($row AS $value)
57 {
58 if (!isset($value) OR $value == '')
59 {
60 $value = "\t";
61 }
62 else
63 {
64 $value = str_replace('"', '""', $value);
65 $value = '"' . $value . '"' . "\t";
66 }
67 $line .= $value;
68 }
69 $data .= trim($line) . "\n";
70 }
71 $data = str_replace("\r", "", $data);
72 $this->generate($headers, $data);
73 }
74 }
75 }
76
77 public function titles($titles)
78 {
79 if (is_array($titles))
80 {
81 $headers = array();
82 if (is_null($this->custom_titles))
83 {
84 if (is_array($titles))
85 {
86 foreach ($titles AS $title)
87 {
88 $headers[] = $title;
89 }
90 }
91 else
92 {
93 foreach ($titles AS $title)
94 {
95 $headers[] = $title->name;
96 }
97 }
98 }
99 else
100 {
101 $keys = array();
102 foreach ($titles AS $title)
103 {
104 $keys[] = $title->name;
105 }
106 foreach ($keys AS $key)
107 {
108 $headers[] = $this->custom_titles[array_search($key, $keys)];
109 }
110 }
111 return implode("\t", $headers);
112 }
113 }
114
115 private function generate($headers, $data)
116 {
117 $this->set_headers();
118 echo "$headers\n$data";
119 }
120
121 private function set_headers()
122 {
123 header("Pragma: public");
124 header("Expires: 0");
125 header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
126 header("Content-Type: application/force-download");
127 header("Content-Type: application/octet-stream");
128 header("Content-Type: application/download");;
129 header("Content-Disposition: attachment; filename=$this->filename.xls");
130 header("Content-Transfer-Encoding: binary ");
131 }
132 }

这里用其中的一种方法导出xls文件:

$titles = array('姓名', '年龄', '性别', '民族'); //设置表格的头部名称
$array = array(
array('张三', '18', '男', '汉族'),
array('李四', '19', '男', '汉族'),
array('王五', '18', '男', '汉族'),
);
//下面把执行这个方法就行了
make_from_array($titles, $array, $filename);

用excel.php类库导出excel文件的更多相关文章

  1. vue Excel导入,下载Excel模板,导出Excel

    vue  Excel导入,下载Excel模板,导出Excel vue  Excel导入,下载Excel模板 <template> <div style="display: ...

  2. Powerdesigner 导出Excel格式数据字典 导出Excel格式文件

    版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...

  3. C# NPOI导出Excel和EPPlus导出Excel比较

    系统中经常会使用导出Excel的功能. 之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到EPPlus可以用来导出Excel,就自己测了下两者导出上的差异. NPIO官网地址:http: ...

  4. C# NPOI导出Excel和EPPlus导出Excel

    转自:http://www.cnblogs.com/tanpeng/p/6155749.html 系统中经常会使用导出Excel的功能.之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到 ...

  5. JAVA 导出 Excel, JS 导出 Excel

    本介绍两种Excle导出方法: JAVA 导出 Excle, JS 导出 Excle 1, js 根据 html 页面的 table > tr > td 标签导出 js代码: //导出 v ...

  6. Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"

    Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...

  7. 服务器不安装Excel,实现导出Excel功能

    /// <summary> /// 导出为Excel /// </summary> /// <param name="sender"></ ...

  8. POI实现导出Excel和模板导出Excel

    一.导出过程 1.用户请求导出 2.先访问数据库,查询需要导出的结果集 3.创建导出的Excel工作簿 4.遍历结果集,写入工作簿 5.将Excel已文件下载的形式回复给请求客户端 二.具体实现(截取 ...

  9. 【C#-导出Excel】DataSet导出Excel

    1.添加引用 2.封装方法 using System; using System.Data; using System.IO; using NPOI.HSSF.UserModel; using NPO ...

随机推荐

  1. 内功心法 -- Java中的深拷贝和浅拷贝

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------这篇博客主要来谈谈" ...

  2. Eclipse 报java.lang.UnsupportedClassVersionError: ("yourclass") bad major version at offset=6

    报这个错误是指你的jar包或者class 的被编译的jdk版本比当前runtime的jdk版本高. 解决问题 1)如果是jar包,重新用jdk 1.6编译你的jar 包 2)如果是java文件或者项目 ...

  3. WKWebView的使用与JS交互详细解读

    前言: WKWebView 这是在iOS8.0之后增加的一个比UIWebView更加完善和强大的控件!看网上关于它的博客也是有许多的了,从各个方面总结一下这个WKWebView看网上说它主要是为了和J ...

  4. 修改UITextField的占位文字颜色的三种层次

    层次一:利用富文本 // 描述占位文字属性 NSMutableDictionary *dict = [NSMutableDictionary dictionary] ; dict[NSForegrou ...

  5. matlab switch case 和 try catch用法示例

    %清除变量或指令 clc;clear; % 允许用户输入参数 disp ('该功能练习switch语句'); disp ('输入1-10其中一个数,系统判定奇偶. '); count = input ...

  6. Java Properties类源码分析

    一.Properties类介绍 java.util.Properties继承自java.util.Hashtable,从jdk1.1版本开始,Properties的实现基本上就没有什么大的变动.从ht ...

  7. java中final小结

    fanal 修饰类,该变量一经赋值,就不能够再修改 修饰类,该类不能让子类继承. 修饰方法,该方法不能被子类重写(隐藏). fanal修饰类与方法的意义 1  某个类或方法实现上已经非常完善,不需要子 ...

  8. WebApi实现通讯加密

    一. 场景介绍: 如题如何有效的,最少量的现有代码侵入从而实现客户端与服务器之间的数据交换加密呢? 二. 探究: 1.需求分析 webapi服务端 有如下接口: public class ApiTes ...

  9. keepalived配置文件

    1. 查看进程 ps aux | grep keepalived ,其输出为: [root@lvs-m ~]# ps aux| grep keepalived |grep -v greproot 21 ...

  10. Eclipse通过jdbc连接数据库制作简单登陆界面

    一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...