xin các pác giúp Lỗi Font khi xuất từ mysql ra excel bằng PHP

Liên hệ QC

tranvanson351889219

Thành viên mới
Tham gia
18/11/09
Bài viết
2
Được thích
0
em sử dụng code này:
PHP:
<?php 
$DB_Server = "localhost";   
$DB_Username = "root";   
$DB_Password = "";   
$DB_DBName = "excel";   
$DB_TBLName = "student";  

  
$savename = date("YmjHis");  // excel file name
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect.");   
//mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $Connect);
mysql_query("set names 'utf8'"); 

//mysql_query("Set Names 'utf-8");
$file_type = "vnd.ms-excel";   
$file_ending = "xls";
header("Content-Type: application/$file_type;charset=utf-8");
header("Content-Disposition: attachment; filename=".$savename.".$file_ending");   
//header("Pragma: no-cache");      
  
$now_date = date("Y-m-j H:i:s");    
//$title = "User Email";    
  
$sql = "SELECT * FROM student";    //export entity_id from 1 to 1000
$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; $j<mysql_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); 
?>
FILE EXCEL LỖI THẾ NÀY:

Capture.jpg
 
Chỉnh sửa lần cuối bởi điều hành viên:
Có thể bạn tô khối, chuyển lại Font thôi, có thể đó là Font VNI-Times đó bạn, nói chung là bạn cứ chuyển từ Font VNI qua Font Unicode, hoặc Font TCVN (ABC), nếu nó hợp với cái nào thì mình giữ lại.
 
Xin code export từ mysql ra excel bằng php

pác có code nào export từ mysql ra excel bằng php mà không bị lỗi font share cho e với..chân thành cảm ơn...
 
Chào,
Cách thể hiện Unicode trong PHP - MySQL

Bạn tham khảo ở đây: http://my.opera.com/levanduyet/blog/cach-the-hien-unicode-trong-php-mysql

BƯỚC 1: THIẾT LẬP CHARSET SANG UTF-8 TRONG HEAD
PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

BƯỚC 2: TẠO DATABASE
Dĩ nhiên nếu muốn dữ liệu của bạn lưu trữ unicode thì khi tạo ra CSDL các bạn phải
Khi bạn tạo ra CSDL hoặc các bảng trong CSDL, nhớ thiết lập Collation là utf8_unicode_ci

BƯỚC 3: KHỞI TẠO DATABASE
Bước này được thực hiện trước khi bạn kết nối với CSDL, bạn có thể thêm các hàng sau:
PHP:
<?php
	define('HOSTNAME', 'localhost');
	define('USERNAME', 'database_user_name');
	define('PASSWORD', 'database_password');
	define('DATABASE', 'database_name');
	$dbLink = mysql_connect(HOSTNAME, USERNAME, PASSWORD);
	mysql_query("SET character_set_results=utf8", $dbLink);
	mb_language('uni');
	mb_internal_encoding('UTF-8');
	mysql_select_db(DATABASE, $dbLink);
	mysql_query("set names 'utf8'",$dbLink);
?>
Tại sao phải thêm các hàng này? Bởi vì bạn cho CSDL biết, loại dữ liệu đưa bạn sẽ làm việc thuộc loại nào.

BƯỚC 4: THÊM DỮ LIỆU VÀO CSDL
PHP:
<?php
	mysql_query("SET character_set_client=utf8", $dbLink);
	mysql_query("SET character_set_connection=utf8", $dbLink);
	$sql_query = "INSERT INTO
	TABLE_NAME(field_name_one, field_name_two)
	VALUES('field_value_one', 'field_value_two')";
	mysql_query($sql_query, $dbLink);
?>

BƯỚC 5: CẬP NHẬT
PHP:
<?php
	mysql_query("SET character_set_client=utf8", $dbLink);
	mysql_query("SET character_set_connection=utf8", $dbLink);
	$sql_query = "UPDATE TABLE_NAME
	SET field_name_one='field_value_one', field_name_two='field_value_two'
	WHERE id='$id'; ";
	mysql_query($sql_query, $dbLink);
?>

BƯỚC 6: TÌM KIẾM TRONG CSDL
PHP:
<?php
	mysql_query("SET character_set_results=utf8", $dbLink);
	$sql_query = "SELECT * FROM TABLE_NAME WHERE id='$id'; ";
	$dbResult = mysql_query( $sql_query, $dbLink);
?>
Với cách làm này các bạn có thể thể hiện các ngôn ngữ khác (Hindi, Chinese, French, German, Spanish, Russian, Arabian (Arabic), Urdu...)trên trang web của mình.


Lê Văn Duyệt
 
Lần chỉnh sửa cuối:
Mềnh làm thế nhưng vẫn bị lỗi font >"<
 
Web KT
Back
Top Bottom