加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用PHP可以从MySQL数据库生成Excel文件

发布时间:2023-08-31 10:21:07 所属栏目:PHP教程 来源:
导读:SQL数据库代码如下:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- 数据库: `mysqlnew`
--
-- --------------------------------------------------------
--
-- 表的结构 `test`
--
CREATE TABLE
SQL数据库代码如下:

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 
(1, '百度', 'http://www.baidu.com'), 
(5, 'google', 'http://www.google.com'), 
(4, '400电话', 'http://www.Cuoxin.com'), 
(6, '搜狗', 'www.sogou.com'), 
(7, '必应', 'http://www.Cuoxin.com'); 
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> 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章