PHP查询数据库导出excel并且解决乱码问题,原生代码无需插件

本文介绍了一种使用PHP从数据库中导出数据到Excel的方法,包括设置时区、头信息、字符集,以及如何处理汉字乱码问题。通过具体代码示例展示了如何构造Excel表格,查询数据库并将其内容导出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
date_default_timezone_set('PRC');//设置时区
 
/*设置head头信息*/
ob_end_clean();//清除缓冲区,避免乱码
Header("Content-Type:application/vnd.ms-excel;charset=UTF-8");
Header("Accept-Ranges:bytes");
Header("Content-Disposition:attachment;filename="."导出excel的名字".date('YmdHis').".xls");
Header("Pragma:no-cache");
Header("Expires:0");
 
$str = $str2 = null;
/*设置表格信息*/
$str.= "序号"."\t";
$str.= "学号"."\t";
$str.= "姓名"."\t";
$str.= "性别"."\t";
$str.= "学院"."\t";
$str.= "年级"."\t";
$str.= "班级"."\t";
$str.= "手机号"."\t";
$str.= "报名时间"."\t\r\n";
$info = iconv("UTF-8","GBK",$str);
echo $info;
 
/*查询内容导出数据库数据*/
$con = new mysqli("localhost", "root", "password", "detabase");
if (!$con) {
    die(mysqli_error()) ;
}
//$sql = " select * from bmxx";
//$res = mysqli_query($con, $sql);
 
mysqli_query($con,"SET NAMES utf8");//解决数据库中有汉字时显示在前台出现乱码问题
$result = mysqli_query($con,"SELECT * FROM `bmxx`");
 
while($row = mysqli_fetch_assoc($result)){
    $list[] = $row;
}
mysqli_free_result($result);
mysqli_close($con);
$co = 1;
foreach($list as $v){
    $str2.= trim($co++)."\t";
    $str2.= trim(iconv("UTF-8","GBK","\t".$v['num']."\t"))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v['name']))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v['sex']))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v['xueyuan']))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v['grade']))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v['class']))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v['phone']))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v['time']))."\t\r\n";
}
echo $str2;
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值