好库网 好库网首页 | 我的好库
好饱的专栏

WEB开发中将数据库记录转换到EXCEL表格文件xls供下载

发布者:好饱
发布日期:2011/4/18 12:02:03   更新日期:2011/4/18 12:02:03
阅读次数:2308
评分:4.80
介绍:本文介绍了在WEB开发中如何为数据库记录提供XLS文件下载功能。
正文:

 

在这里我们并不需要提供XLS二进制格式的文件,因为这一过程不管是Automation还是第三方服务器COM组件都将大费周折,
因为XLS文件格式还支持HTML格式,例如将下面的文字保存为XLS文件(UTF-8格式):

在这里我们并不需要提供XLS二进制格式的文件,因为这一过程不管是Automation还是第三方服务器COM组件都将大费周折,

因为XLS文件格式还支持HTML格式,例如将下面的文字保存为XLS文件(UTF-8格式):

 

<html><meta http-equiv=content-type content="text/html; charset=UTF-8"><body><table border='1'>
<tr><td>ID</td><td>网站</td><td>用户名</td><td>用户邮箱</td></tr>
<tr><td>1</td><td>http://www.okbase.net</td><td>张三</td><td>zhangsan@163.com</td></tr>
<tr><td>2</td><td>http://www.vckbase.com</td><td>李四</td><td>lisi@163.com</td></tr>
</table></body></html>
这样就生成了XLS文件。
在WEB后台程序中提供EXCEL文件下载正是基于此原理,下面是该函数的代码:
function down_xls($data, $keynames, $name) {
	$xls[] = "<html><meta http-equiv=content-type content=\"text/html; charset=UTF-8\"><body><table border='1'>";
	$xls[] = "<tr><td>ID</td><td>" . implode("</td><td>", array_values($keynames)) . '</td></tr>';
	foreach($data As $o) {
		$line = array(++$index);
		foreach($keynames AS $k=>$v) {
			$line[] = $o[$k];
		}
		$xls[] = '<tr><td>'. implode("</td><td>", $line) . '</td></tr>';
	}
	$xls[] = '</table></body></html>';
	$xls = join("\r\n", $xls);
	header('Content-Disposition: attachment; filename="'.$name.'.xls"');
	die(mb_convert_encoding($xls,'UTF-8','UTF-8'));
}
down_xls函数有三个参数,分别是:$data 数据集(数组,可以是从数据库读取的记录),$keynames 字段定义,$name 文件名。
我们看一个PHP的实际例子:
// 从数据库中查询出记录放到 $coupons ,过程省略
....

// 定义数组
$kn = array(
	'buy_id' => '支付序号',
	'username' => '用户名',
	'email' => '用户邮箱',
	'realname' => '姓名',
	'mobile' => '手机号码',
	'condbuy' => '选项',
	'cmobile' => '消费手机',
	'date' => '生成时间',
	'consume_time' => '消费时间',
	'remark' => '备注',
);

// 调用xls下载生成函数
down_xls($coupons, $kn, 'myxls.xls');
虽然这里只提供PHP的例子,因为基本上是文本的操作,所以很容易改写成其它语言的版本。

 

 

 


评论 [发表评论]
账号 密码 还没帐号呢,现在注册一个?

免责声明:好库网所展示的信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。