php使用header()导出Excel(转)
本文转自http://blog.it985.com/10322.html , 更多详细内容请参看原文
将数据库中的数据导出为Excel,可以使用功能强大的PHPExcel类库,此类库基本可以实现所有的功能,博客里已经有几篇文章介绍了;
而这里,我尝试使用header()导出数据,非常简单:
首先数据表中的数据:
导出excel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?php $SERVER = 'localhost' ; $MYSQL_NAME = 'root' ; $MYSQL_PASSWORD = 'root' ; $conn = mysqli_connect( $SERVER , $MYSQL_NAME , $MYSQL_PASSWORD ) or die ( 'mysql connect error' ); mysqli_select_db( $conn , 'test' ) or die ( 'DB error' ); mysqli_query( $conn , 'SET NAMES UTF8' ); header( "Content-type:application/vnd.ms-excel" ); //设置内容类型 header( "Content-Disposition:attachment;filename=data.xls" ); //文件下载 $sql = "SELECT * FROM user" ; $arr = array ( 'id' , 'name' , 'gender' , 'add_datetime' ); $result = mysqli_query( $conn , $sql ); foreach ( $arr as $tval ) { echo $tval . "\t" ; } echo "\n" ; foreach ( $result as $key => $val ) { foreach ( $val as $ckey => $cval ) { echo $cval . "\t" ; } echo "\n" ; ?> |
这是导出的excel中的数据:
非常简单,只是excel中列的宽度不能做到完美的自定义,需要手动在excel中修改列的宽度;
虽然在变量$cval的外层可以套一层<td>标签,然后通过来定义<td>的width来修改列的宽度,但是这样的话,在打印出的excel中也还不是不能显示所有的边框线;个人感觉使用header()导出excel还不是非常完美。