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. W3Cschool学习笔记——XHTML基础教程

    XHTML 是更严格更纯净的 HTML 代码. XHTML 是什么? XHTML 指可扩展超文本标签语言(EXtensible HyperText Markup Language). XHTML 的目 ...

  2. 基于Selenium2与Python自动化测试环境搭建

    简介: selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: *  免费,也不用再为破解QTP而大伤脑筋 *  小巧,对于 ...

  3. 一道关于call和this的JS面试题

    一个有情怀的程序员...... 2017年始,希望成为一个更好的自己,想自己所想,爱自己所爱 ----------------------------------------------------- ...

  4. Linux输入子系统(一) _驱动编码

    输入设备都有共性:中断驱动+字符IO,基于分层的思想,Linux内核将这些设备的公有的部分提取出来,基于cdev提供接口,设计了输入子系统,所有使用输入子系统构建的设备都使用主设备号13,同时输入子系 ...

  5. DLL 导出函数

    DLL的链接方式分为两种:隐式链接和显式链接 DLL导出的函数 和 导出类在调用时,有些区别,这里暂时不讲,直说简单的导出函数: 隐式链接: #include "stdafx.h" ...

  6. Asp.net mvc 知多少(八)

    本系列主要翻译自<ASP.NET MVC Interview Questions and Answers >- By Shailendra Chauhan,想看英文原版的可访问[http: ...

  7. 剖析Asp.Net Web API中HttpController的激活

    在Asp.Net Web API中,请求的目标是定义在某个HttpController中的某个Action方法.当请求经过Asp.Net Web API消息处理管道到达管道"龙尾" ...

  8. 浏览器兼容汇总(css+js)

      JavaScript 1. HTML对象获取问题 FireFox:document.getElementById("idName");ie:document.idname或者d ...

  9. 读书笔记 effective c++ Item 19 像设计类型(type)一样设计

    1. 你需要重视类的设计 c++同其他面向对象编程语言一样,定义了一个新的类就相当于定义了一个新的类型(type),因此作为一个c++开发人员,大量时间会被花费在扩张你的类型系统上面.这意味着你不仅仅 ...

  10. 一个基于注解的orm简单实现(二):实现思路

    先来看一段常见的数据库操作代码: ``` protected User getDataFromDatabase(long id){ String sql = "select firstnam ...