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 入门训练 Fibonacci数列

    ---------------------------------------------------------------------------------------------------- ...

  2. 学习计划——巩固基础+进阶练习

    时间:2016/3/23---24 内容:如何用CSS进行网页布局  课程复习 目标:完成一个demo+完成一篇学习心得博客 时间:2016/3/25---26 内容:网页布局基础  课程复习 目标: ...

  3. mysql学习之权限管理

    数据库权限的意义: 为了保证数据库中的业务数据不被非授权的用户非法窃取,需要对数据库的访问者进行各种限制,而数据库安全性控制措施主要有这三种,第一种用户身份鉴别,手段可以是口令,磁卡,指纹等技术,只有 ...

  4. 智能指针shared_ptr

    // 智能指针会自动释放所指向的对象. // shared_ptr的应用场景是:程序需要在多个对象间共享数据 /* 先从应用场景入手吧,说矿工A发现了一个金矿. * 然后矿工A喊来了矿工B,一起开采, ...

  5. mybatis入门-框架原理

    mybatis是什么 在说mybatis原理之前,我们有必要知道,mybatis到底是个什么东西.mybatis是一个持久层的框架.是一个不完全的ORM框架.因为它需要由程序员自己去写sql语句.但是 ...

  6. 前端必备技能之Photosh切图

    切图:即从设计稿里面切出网页素材 一.使用Photoshop工具 工具的使用: 1.将文字与标尺的单位的设置为像素 2.打开这五个窗口,关闭其它窗口,保存工作区方便以后使用 3.工作区弄乱时,可以使用 ...

  7. RejectedExecutionException 分析

    当往一个固定队列ArrayBlockingQueue 不停的提交任务时,会发生什么? 请看如下代码 private static final int QUEUE_SIZE = 20; private ...

  8. 【Spring】使用Spring的AbstractRoutingDataSource实现多数据源切换

    最近因为项目需要在做两个项目间数据同步的需求,具体是项目1的数据通过消息队列同步到项目2中,因为这个更新操作还涉及到更新多个库的数据,所以就需要多数据源切换的操作.下面就讲讲在Spring中如何进行数 ...

  9. Java静态代理和动态代理总结

    静态代理 第一种实现(基于接口): 1>接口 public interface Hello { void say(String msg);} 2>目标类,至少实现一个接口 public c ...

  10. gulp+browser-sync使用方法

    gulp简介 gulp是基于流的自动化构建工具,也就是说gulp是通过操作流实现自动编译,压缩文件等操作的.这得益于node.js对流的支持,当然gulp.js和构建的任务文件都是JavaScript ...