文章目录
  1. 1. 方案一
  2. 2. 方案二
  3. 3. 参考

最近帮朋友做一个活动报名页面,同时需要后台管理,希望可以把报名的用户导出到Excel表格中。

网上查找了一下资料,终于将这个功能完成。下面直接上excel.php文件代码

方案一

<?php
    error_reporting(0); //去除PHP给出的一些提示。

    include('conn.php');  //封装起来的数据库连接

    /*获取结果集中所有的数据*/
    function getAll($sql) {
        $query=mysql_query($sql);
        if($query) {
            $temp=array();//定义一个空数组
            while($res=mysql_fetch_assoc($query)) {
                $temp[]=$res;
            }
            return $temp;
        }
        else{
            return false;
        }
    }


    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:attachment;filename=iguandanusers-".date('Y-m-d',time()).".xls");//定义生成的文件名

    $sql="select * from `user";//查询要导出的信息
    $data=getAll($sql);

    if($data){
        echo iconv("utf-8","gbk",'ID')."\t";
        echo iconv("utf-8","gbk",'Name')."\t";
        echo iconv("utf-8","gbk",'Phone')."\t";
        echo iconv("utf-8","gbk",'Date')."\t";
        foreach($data as $v){
            //输出内容如下:
            echo "\n";
            echo iconv("utf-8","gbk",$v['id'])."\t";
            echo iconv("utf-8","gbk",$v['name'])."\t";
            echo iconv("utf-8","gbk",$v['phone'])."\t";
            echo iconv("utf-8","gbk",$v['date'])."\t";
        }
    }
    exit;
?>

下面给出conn.php文件中的代码

<?php
    /*****************************
    *数据库连接
    *****************************/
    $conn = @mysql_connect("localhost","root","root");
    if (!$conn){
        die("连接数据库失败:" . mysql_error());
    }
    mysql_select_db("iguandan", $conn);

    mysql_query("SET NAMES 'utf8'");
    mysql_query("SET CHARACTER_SET_CLIENT=utf8");
    mysql_query("SET CHARACTER_SET_RESULTS=utf8");
?>

方案二

后来又发现原来已经有人将PHP对Excel的操作进行了封装,可以直接导入然后调用。相关项目在code.google.com/p/php-excel/

所以导入php-excel.class.php(放在统计目录下即可)文件之后,上面的代码就可以修改为如下:

<?php

    // load library
    require 'php-excel.class.php';

    include('conn.php');

    $headArray =array();
    $headArray[] = array('ID','Name','Phone','Date');

    $dataArray = array();
    $sql="select * from `user";//查询要导出的信息
    $query=mysql_query($sql);
    while($res=mysql_fetch_array($query)) {
        $dataArray[] = array($res['id'],$res['name'],$res['phone'],$res['date']);
    }
    // create a simple 2-dimensional array
    $data = array(
            1 => array ('Name', 'Surname'),
            array('Schwarz', 'Oliver'),
            array('Test', 'Peter')
            );

    // generate file (constructor parameters are optional)
    $xls = new Excel_XML('UTF-8', false, 'My Test Sheet');
    $xls->addArray($headArray);
    $xls->addArray($dataArray);
    $xls->generateXML('my-test');
?>

参考

  1. PHP把数据库里面的数据以excel形式导出(可直接使用)
  2. PHP从数据库中导出Excel表格
文章目录
  1. 1. 方案一
  2. 2. 方案二
  3. 3. 参考