php导出任意mysql数据库中的表去excel文件

测试建表脚本

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- 数据库: `mysqlnew`
--

-- --------------------------------------------------------

--
-- 表的结构 `test`
--

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(10) NOT NULL auto_increment,
  `websitename` varchar(200) character set utf8 NOT NULL,
  `websiteurl` varchar(200) character set utf8 NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- 导出表中的数据 `test`
--

INSERT INTO `test` (`id`, `websitename`, `websiteurl`) VALUES

php 文件代码

<?php


function xlsBOF() {
    echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
    return;
}

function xlsEOF() {
    echo pack("ss", 0x0A, 0x00);
    return;
}

function xlsWriteNumber($Row, $Col, $Value) {
    echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
    echo pack("d", $Value);
    return;
}

function xlsWriteLabel($Row, $Col, $Value ) {
    $L = strlen($Value);
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value;
    return;
}

/**
 *添加头部信息
 * @param <type> $rsRec
 */
function addheader($rsRec) {
    $fieldLen = mysql_num_fields($rsRec);
    xlsBOF();
    $iCell = 0;
    for($i=0;$i<$fieldLen;$i++) {
        $fieldname = mysql_field_name($rsRec, $i);
        xlsWriteLabel(0,$iCell++, iconv("utf-8", "gb2312", $fieldname));
    }


}

/**
 *添加记录信息
 * @param <type> $rsRec
 */
function addData($rsRec) {
    $xlsRow=1;
    $fieldLen = mysql_num_fields($rsRec);
    while($rsone=mysql_fetch_object($rsRec)) {
        $iCell = 0;
        for($i=0;$i<$fieldLen;$i++) {
            $fieldname = mysql_field_name($rsRec, $i);
            $fieldnameValue = $rsone->$fieldname;
            xlsWriteLabel($xlsRow,$iCell++,iconv("utf-8", "gb2312", $fieldnameValue));
        }

        $xlsRow++;
    }
    xlsEOF();
    exit;
}

if(isset($_POST["tableName"])) {

    $con = mysql_connect("localhost", "root", "vertrigo");

    $result=mysql_db_query("mysqlnew","select * from ".$_POST["tableName"]);

// 文件头
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    header("Content-Disposition: attachment;filename=test.xls ");
    header("Content-Transfer-Encoding: binary ");

// 向表中添加数据
    addheader($result) ;
    addData($result) ;

    mysql_close($con);

}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>excel信息导出</title>
    </head>
    <body>
        <div>
            <form name="form1" method="post" action="" onSubmit="">
                <input type="text" name="tableName" value="" />
                <br>
               
                <input class="ccc" name="" type="submit" value="提交" />
            </form>
        </div>
    </body>
</html>

运行画面

生成excel文件内容

     
    
    
    
     
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值