php 导出mysql 结构_使用PHPExcel导出数据库表结构及内容

导出表结构:

mysql> desc user ;

+----------+--------------+------+-----+---------------------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+--------------+------+-----+---------------------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | char(20) | NO | | NULL | |

| sex | char(10) | YES | | male | |

| intro | varchar(500) | YES | | NULL | |

| birthday | timestamp | NO | | 2018-04-18 08:15:30 | |

+----------+--------------+------+-----+---------------------+----------------+

5 rows in set (0.02 sec)

要导出上面这种表结构,可以使用如下代码:

define("DIR",dirname(__FILE__));

include DIR."/PHPExcel/PHPExcel.php";

$mysqli = new Mysqli("127.0.0.1","root","123456","test");

$mysqli_result = $mysqli->query("desc user");

//为了防止取出的数据的字段位置改变,优先使用关联数组形式

$res = $mysqli_result->fetch_all(MYSQLI_ASSOC);

$objExcel = new PHPExcel();

$objSheet = $objExcel->getActiveSheet();

$objSheet->setTitle("demo");

$objSheet->setCellValue("A1","Field")->setCellValue("B1","Type")

->setCellValue("C1","Null")->setCellValue("D1","Key")

->setCellValue("E1","Default")->setCellValue("F1","Extra");

foreach($res as $k=>$v){

$index = $k + 2;//注意一下,是从2开始

$objSheet->setCellValue("A".$index,$v["Field"])->setCellValue("B".$index,$v["Type"])

->setCellValue("C".$index,$v["Null"])->setCellValue("D".$index,$v["Key"])

->setCellValue("E".$index,$v["Default"])->setCellValue("F".$index,$v["Extra"]);

}

$objWriter = PHPExcel_IOFactory::createWriter($objExcel,"Excel2007");

$objWriter->save(DIR."/demo.xlsx");

?>

命令行运行之后,Excel表格内容如下:

923e7dcb77f9828570d84f42240a120c.png

有一点要注意,如果一个字段的默认值是NULL,那么上面可以看到,是没有写入的,可以通过下面的方法完成。

导出表内容

其实导出表的内容和导出表的结构,过程是一样的,基本没变化,只需要改一下SQL语句即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值