利用php在mysql里导出excel数据表的几种方法

直接说重点,大概有三种方法

1、使用PHPExcel这个插件做就不说了,网上很多列子,而且确实很方便,很NB,不过用这个有几个地方要注意,第一,php版本最好5.3以上,第二,服务器需要支持ZipArchive,如何配置ZipArchive,可以看我另外一个文章,http://blog.sina.com.cn/s/blog_557854150102vxlf.html

2、一个很简单的方法,适用于比较简单的导出要求

<?
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Content-type:application/vnd.ms-excel");  
Header("Content-Disposition:attachment;filename=test.xls");
$con = mysql_connect("localhost","数据库登陆名","数据库密码");
mysql_select_db("数据库名");
mysql_query('set names utf8');//数据库编码
$sql = "select 要输出的字段名,多个用逗号隔开 from 数据表单名";
$result = mysql_query($sql,$con);
echo "id\tusername";//输出的excel的列名,用\t换列
while ($rs=mysql_fetch_array($result)){
 echo "\n";//用\n换行
 echo $rs['输出字段名']."\t".$rs['输出字段名'];//用."\t".连接
}
?>

比如列子

<?php
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Content-type:application/vnd.ms-excel");  
Header("Content-Disposition:attachment;filename=test.xls");
$con = mysql_connect("localhost","root","123456");
mysql_select_db("db_test");
mysql_query('set names utf8');
$sql = "select id,FirstName,LastName,Age,Hometown,Job from user";
$result = mysql_query($sql,$con);
echo "id\tFirstName\tLastName\tAge\tHometown\tJob";
while ($rs=mysql_fetch_array($result)){
 echo "\n";
 echo $rs['id']."\t".$rs['FirstName']."\t".$rs['LastName']."\t".$rs['Age']."\t".$rs['Hometown']."\t".$rs['Job'];
}
?>

3、同样是比较简单的导出需求搞的

<?php
 $filename="info.xls";//先定义一个excel文件
 header("Content-Type: application/vnd.ms-execl");
 header("Content-Type: application/vnd.ms-excel; charset=utf-8");
 header("Content-Disposition: attachment; filename=$filename");
 header("Pragma: no-cache"); header("Expires: 0");
 //我们先在excel输出表头,当然这不是必须的
 echo iconv("utf-8", "gb2312", "姓名")."\t";
 echo iconv("utf-8", "gb2312", "手机")."\t";
 echo iconv("utf-8", "gb2312", "日期")."\t";
 echo iconv("utf-8", "gb2312", "地区")."\t";
 echo iconv("utf-8", "gb2312", "详细区域")."\t";
 echo iconv("utf-8", "gb2312", "预购车型")."\n";//注意这个要换行
 //这里我们定义一个数据库为datebse 数据库用户名:root 密码为:123456
 $conn = mysql_connect("localhost","gdcarvip88YH","gdcarvipsH778");
 mysql_select_db("gdcarvip888");//这个是数据库名
 mysql_query('set names utf8');//需要加这句,不知道为什么,不然导出的中文乱码,大家在使用的时候,如果utf8乱码,就改为GBK,反正也可以
 $sql="select title,mycall,tqsj,dyx,address,ygcx from 表名";$result=mysql_query($sql); //查询的表条件
 while($row =mysql_fetch_array($result)){
     echo iconv("utf-8", "gb2312", $row['title'])."\t";
     echo iconv("utf-8", "gb2312", $row['mycall'])."\t";
     echo iconv("utf-8", "gb2312", $row['tqsj'])."\t";
     echo iconv("utf-8", "gb2312", $row['dyx'])."\t";
     echo iconv("utf-8", "gb2312", $row['address'])."\t";  
     echo iconv("utf-8", "gb2312", $row['ygcx'])."\n"; 
 }
   ?>

以上就是我总结的3总方法,这里只是说了下第2.3种,在比较简单条件下的应用,真正做严谨的项目,建议,必须第一种啊,重要的事说三遍PHPExcel,PHPExcel,PHPExcel。(对了,第2,3种大多有中文乱码的bug,使用mysql_query(‘set names utf8’);或者mysql_query(‘set names GBK’);)可以不乱码,反正问题多多,临时用用可以!

猜你喜欢

转载自blog.csdn.net/likeni1314/article/details/53911482
今日推荐