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. yii2 邮件发送(有图有真相)

    经典的密码找回方案是发送邮件到用户邮箱然后修改密码,下面利用yii2 高级版的mail功能,进行邮件的发送,如下图 1.在comm/config/main-local.php中添加 'mailer' ...

  2. tableView的总结

    // // ViewController.m // TableViewController // // Created by 王妍 on 16/3/23. // Copyright © 2016年 c ...

  3. iOS 创建OpenGL 环境的思考

    关于如何从头开始创建环境,可以参考大神的博文OpenGL ES 3.0 数据可视化 0:Hello world,本文只是补充一些我在实践中的一些思考. CAEAGLLayer If you plan ...

  4. jQuery UI 实例 - 自动完成(Autocomplete)

    http://www.runoob.com/jqueryui/example-autocomplete.html 自定义数据并显示 您可以使用自定义数据格式,并通过简单地重载默认的聚焦和选择行为来显示 ...

  5. 如何用js实现自适应,原来只是几行代码的事(╯‵□′)╯︵┻━┻

    在javascript写下如下几行:   (function (doc, win, undefined) {            var docEl = doc.documentElement,   ...

  6. mongodb 安装到创建用户,认证auth,httpinterface

    今天花了一天时间来解开这个mongodb的谜团,如果有遇到了其他的问题,可以咨询我. #开始 2.6.10安装方式 不同版本后面设置用户权限方式有所差异#下载这个版本的mongodb mongodb- ...

  7. 【排序算法】归并排序算法 Java实现

    归并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用. 基本思想 可以将一组数组分成A,B两组 依次类推,当分出来的小组只有一 ...

  8. 2017-2-17 c#基础学习 (控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印)

    1 控制台程序的创建 > 新建项目  ,选择 c#,  框架选择4.0 , 选择控制应用台程序, 选择文件保存位置 修改名字. 2 c#输出与输入 >在main函数中编写代码 >在编 ...

  9. Linux 下文件操作 shell

    删除目录下的所有文件ls *.log | xargs rm -f当前目录所有文件大小的总和ll | awk '{sum += $5}; END {print sum/1048576}'将命令推送到后台 ...

  10. 使用grunt完成requirejs的合并压缩和js文件的版本控制

    最近有一个项目使用了 requirejs 来解决前端的模块化,但是随着页面和模块的越来越多,我发现我快要hold不住这些可爱的js文件了,具体表现在每个页面都要设置一堆 requirejs 的配置( ...