上面第一个图是导出后的效果图,第二张是数据库实际数据,细心的哥们就发现导出的图后三位全部变为0,这神马情况啊
求大神指点
代码如下:
<?phpdefine('NOROBOT', true);define('CURSCRIPT', 'charge');require_once './include/common.inc.php';header("Content-type:application/vnd.ms-excel;charset=utf-8");header("Content-Disposition:attachment;filename=充值卡.xls");$page = $page ?: 1; $results = array(); $condition = ''; echo "被充值手机号"." "; echo "充值卡序列号"." "; echo "充值金额"." "; echo "实充额度"." "; echo "充值时间"." ";$query = $mysqli->multi_query('CALL UP_User_GetCardInfo("'.$condition.'","'.$page.'","900000")') or die($mysqli->error);$query = $mysqli->store_result(); while ($record = mysqli_fetch_array($query, MYSQLI_BOTH)){ $phone = $record['phone']; $cardid = $record['cardid']; $charge = $record['charge']; $achieve = $record['achieve']; $chgdate = $record['useDate']; echo "
"; echo $phone." "; echo $cardid." "; echo $charge." "; echo $achieve." "; echo $chgdate." "; }if(is_object($query)) $query->free_result();$mysqli->next_result(); ?>
没人!
用另外一种方法也是一样的效果,代码如下:
<?php//iconv("utf8","gb2312",$v)。数据库用的UTF8,导出csv时如不转换excel打开中文将显示乱码(文本正常)require_once './include/common.inc.php';function exportToCsv($csv_data, $filename = 'export.csv') { $csv_terminated = "
"; $csv_separator = ","; $csv_enclosed = '"'; $csv_escaped = "\"; // Gets the data from the database $schema_insert = ''; $out = ''; // Format the data foreach ($csv_data as $row) { $schema_insert = ''; $fields_cnt = count($row); //printr($row); $tmp_str = ''; foreach($row as $v) { $tmp_str .= $csv_enclosed.str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, iconv("utf8","gb2312",$v)).$csv_enclosed.$csv_separator; } // end for $tmp_str = substr($tmp_str, 0, -1); $schema_insert .= $tmp_str; $out .= $schema_insert; $out .= $csv_terminated; } // end while header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Length: " . strlen($out)); header("Content-type: text/x-csv;charset=utf-8"); header("Content-Disposition:filename=$filename");#header('Content-Disposition: attachment;filename="'.iconv('utf-8', "gb2312", $filename)); echo $out;}#$title = array("uid","username","company");#$title = $_SESSION["exp_title"];$title = array();$field = array();foreach ($_SESSION["exp_title"] as $key => $val){ $title[] = $key; $field[] = $val;}#$query = $mysqli->query("select uid,username,phone from ccna_members limit 10") or die($mysqli->error);#$query = $mysqli->multi_query("select * from ccna_members limit 10") or die($mysqli->error);$query = $mysqli->multi_query($_SESSION["exp_sql"]) or die($mysqli->error);$query = $mysqli->store_result();//$csv_data = array(array('uid', 'username'));//所有记录就存这啦$csv_data = array(array());//压入表头,将字段放到第一行for ($i=0; $i < count($field); $i++) { $csv_data[0][$i]= $field[$i];}while($row = mysqli_fetch_array($query,MYSQLI_BOTH)){ //array_push($csv_data, array($row[0],$row['username'])); $row_array = array(); for ($i=0; $i < count($title); $i++) { #array_push($row_array,iconv("utf-8","gb2312",$row[$title[$i]])); array_push($row_array,$row[$title[$i]]); } array_push($csv_data,$row_array);}exportToCsv($csv_data,$_SESSION["exp_filename"].".csv");?> echo $cardid." ";
改为
echo “‘$cardid ";
echo $cardid." ";
改为
echo “‘$cardid ";
怎么可能,你产生的就是文本文件,只不过后缀不同罢了
怎么可能,你产生的就是文本文件,只不过后缀不同罢了
"’$cardid ";
有个单引号
是也在想:字太小可能看不清
"’$cardid ";
有个单引号
是也在想:字太小可能看不清
?成字符串就可以了。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号