用excel.php类库导出excel文件
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文件的更多相关文章
- vue Excel导入,下载Excel模板,导出Excel
vue Excel导入,下载Excel模板,导出Excel vue Excel导入,下载Excel模板 <template> <div style="display: ...
- Powerdesigner 导出Excel格式数据字典 导出Excel格式文件
版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...
- C# NPOI导出Excel和EPPlus导出Excel比较
系统中经常会使用导出Excel的功能. 之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到EPPlus可以用来导出Excel,就自己测了下两者导出上的差异. NPIO官网地址:http: ...
- C# NPOI导出Excel和EPPlus导出Excel
转自:http://www.cnblogs.com/tanpeng/p/6155749.html 系统中经常会使用导出Excel的功能.之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到 ...
- JAVA 导出 Excel, JS 导出 Excel
本介绍两种Excle导出方法: JAVA 导出 Excle, JS 导出 Excle 1, js 根据 html 页面的 table > tr > td 标签导出 js代码: //导出 v ...
- 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的格式写入 ...
- 服务器不安装Excel,实现导出Excel功能
/// <summary> /// 导出为Excel /// </summary> /// <param name="sender"></ ...
- POI实现导出Excel和模板导出Excel
一.导出过程 1.用户请求导出 2.先访问数据库,查询需要导出的结果集 3.创建导出的Excel工作簿 4.遍历结果集,写入工作簿 5.将Excel已文件下载的形式回复给请求客户端 二.具体实现(截取 ...
- 【C#-导出Excel】DataSet导出Excel
1.添加引用 2.封装方法 using System; using System.Data; using System.IO; using NPOI.HSSF.UserModel; using NPO ...
随机推荐
- 详谈Struts2
介绍struts2: struts2是一个基于mvc设计模式的web层框架. 详谈struts2的执行流程: struts2的执行流程:用户发送请求---->首先经过Struts2的核心过滤器- ...
- Git使用规范
团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的.为了团队研发的规范性,特制定此规范.当然不同的团队可能有着不同的约定,此规范仅供参考. 目录 1.基本原则 2.建议流程 基本原则 不到万 ...
- 代码神器Atom,最常用的几大插件,你值得拥有。
作者:魔洁 atom常用插件 atom插件安装File>Settings>intall搜索框输入插件名,点击Packages搜索,搜索出来后点击intall安装,建议你先安装(simpli ...
- stringBuffer的使用及字符串比较的区别
/* * 关于equals()和==: 对于String简单来说就是比较两字符串的Unicode序列是否相当,如果相等返回true; * 而==是比较两字符串的地址是否相同,也就是是否是同一个字符串的 ...
- 重新认识一个强大的 Gson
从一个 Bug 说起 不知道你们发现没有,你写完的程序无论当时怎么测试,过一段时间总会出 Bug .再说一个每天都在发生的例子:在你写完一篇博客后,立即检查的话,总是查不出自己写的错别字. 据说这些都 ...
- [MongoDB] - 数据的增删改操作
在前一篇中简单的介绍了一些基本操作命令,现在分别针对这些命令进行比较详细的说明: 一.数据插入 插入数据使用命令insert,insert的参数只有一个,就是要插入的文档BSON数据.MongoDB的 ...
- [Netty] - Netty入门(最简单的Netty客户端/服务器程序)
Java中的NIO是一种解决阻塞式IO问题的基本技术,但是NIO的编写对java程序员是有比较高的要求的.那么Netty就是一种简化操作的一个成熟的网络IO编程框架.这里简单介绍一个程序,代码是< ...
- java初级开发程序员(第五单元)
1.循环结构(一): 语法: while(循环条件){ //循环操作 } 示列代码: int i=1; while(i<=100){ System.out.println(&qu ...
- devexpress表格控件gridcontrol特殊应用(一)——实现禁用特定行(附源代码)
一些特殊的项目中会存在一些特殊需求,如需要禁用特定行.这时候gridcontrol的一般属性是实现不了的,就需要做一些更改.这时候你就需要去devexpress官网中找寻些资料(官网https://w ...
- devexpress实现单元格根据条件显示不同的样式(颜色、字体、对齐方式,大小等)
1.devexpress控件库之所以被大家所喜爱,是因为它将许多常用的东西都封装成了属性.可以通过一些简单的配置,将以前某些需要大篇幅代码才可实现的效果展示出来.这里是一个实现了将[第二列数据在表格0 ...