牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2016-12-28 投稿人: 浏览次数:3982

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

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	username";//输出的excel的列名,用	换列
while ($rs=mysql_fetch_array($result)){
 echo "
";//用
换行
 echo $rs["输出字段名"]."	".$rs["输出字段名"];//用."	".连接
}
?>

比如列子

<?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	FirstName	LastName	Age	Hometown	Job";
while ($rs=mysql_fetch_array($result)){
 echo "
";
 echo $rs["id"]."	".$rs["FirstName"]."	".$rs["LastName"]."	".$rs["Age"]."	".$rs["Hometown"]."	".$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", "姓名")."	";
 echo iconv("utf-8", "gb2312", "手机")."	";
 echo iconv("utf-8", "gb2312", "日期")."	";
 echo iconv("utf-8", "gb2312", "地区")."	";
 echo iconv("utf-8", "gb2312", "详细区域")."	";
 echo iconv("utf-8", "gb2312", "预购车型")."
";//注意这个要换行
 //这里我们定义一个数据库为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"])."	";
     echo iconv("utf-8", "gb2312", $row["mycall"])."	";
     echo iconv("utf-8", "gb2312", $row["tqsj"])."	";
     echo iconv("utf-8", "gb2312", $row["dyx"])."	";
     echo iconv("utf-8", "gb2312", $row["address"])."	";  
     echo iconv("utf-8", "gb2312", $row["ygcx"])."
"; 
 }
   ?>

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。