本文目录一览:
- 1、php 数据库 导出excel 的时候 导出成功 但是却是乱码 请问怎么解决?
- 2、php导出excel 乱码,因为使用phpexcel内存不足的原因
- 3、php 导出Excel乱码 大神帮忙指路,急急急!!!!!!
- 4、php导出到excel出乱码时怎么回事?
php 数据库 导出excel 的时候 导出成功 但是却是乱码 请问怎么解决?
你指定的PHPExcel生成的是xls格式的文件。是一种电子表格格式,这种格式一般是用excel打开处理的。直接用文本方式显示就是乱码的。但为什么是直接输出这些乱而不是下载呢?是因为你没有给输出指定头信息告诉浏览器输出的内容不是直接显示而是供下载的,浏览器所以浏览器也不懂,它只好老老实实给输出来。你试着在上面那段代码前加上如下内容:
header("Cache-Control: public");
header("Pragma: public");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type:application/download");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=你自己指定或生成文件名.xls");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
php导出excel 乱码,因为使用phpexcel内存不足的原因
如果数据库存储的格式是utf-8.
数据输出时的格式也是utf-8。
php输出数据时是utf-8 的无BOM格式。
但是在excel,或是csv输出数据时都是要带上bom格式的数据。在excel格式的文档中乱码就需要在输出的最顶端加上 chr(0xEF).chr(0xBB).chr(0xBF)(BoM格式)就可以解决乱码问题。
php 导出Excel乱码 大神帮忙指路,急急急!!!!!!
?php
$DB_Server = "localhost";
$DB_Username = "root";
$DB_Password = "3721";
$DB_DBName = "wangshang";
$DB_TBLName = "ws_info";
$savename = date("YmjHis");
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect.");
mysql_query("Set Names gb2312"); $file_type = "vnd.ms-excel";
$file_ending = "xls";
header("Content-Type: application/$file_type;charset=big5");
header("Content-Disposition: attachment; filename=".$savename.".$file_ending");
//header("Pragma: no-cache");
$now_date = date("Y-m-j H:i:s");
$title = "数据库名:$DB_DBName,数据表:$DB_TBLName,备份日期:$now_date";
$time='1303776000';
echo date("Y-m-d",$time);
$sql = "Select ws_type,info2,info1,tel,mobile,userid from $DB_TBLName where cityid='7' and addtime'".$time."'and ws_type='2'";
echo $sql;
exit;
$ALT_Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database");
$result = @mysql_query($sql,$Connect) or die(mysql_error());
echo("$title\n");
$sep = "\t";
for ($i = 0; $i mysql_num_fields($result); $i++){
echo mysql_field_name($result,$i)."\t";
}
print("\n");
$i = 0;
while($row = mysql_fetch_row($result)){
$schema_insert = "";
for($j=0; $jmysql_num_fields($result);$j++){
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert .= "\t";
print(trim($schema_insert));
print "\n";
$i++;
}
return (true);
?
直接用
php导出到excel出乱码时怎么回事?
header 定义编码时要存成和定义编码一样的文件编码模式,
header不定义编码时存为默认的ansi(gbk)模式