欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

excel讀取mysql中的數(shù)據(jù)亂碼問題

榮姿康2年前14瀏覽0評論

Excel作為一款常用的辦公軟件,經(jīng)常用于數(shù)據(jù)處理與報(bào)表制作。而MySQL作為一種流行的關(guān)系型數(shù)據(jù)庫,也廣泛應(yīng)用于各種數(shù)據(jù)存儲(chǔ)場景。在實(shí)際使用中,我們時(shí)常需要將MySQL中的數(shù)據(jù)導(dǎo)出到Excel中進(jìn)行數(shù)據(jù)處理或報(bào)表制作,但是經(jīng)常會(huì)遇到在Excel中讀取MySQL數(shù)據(jù)亂碼的問題。

造成MySQL數(shù)據(jù)在Excel中出現(xiàn)亂碼的原因主要有以下兩個(gè)方面:

  1. MySQL數(shù)據(jù)庫字符集與Excel字符集不一致;
  2. MySQL數(shù)據(jù)庫中的特殊字符無法被Excel正確解析。

解決上述問題的方法也比較簡單,下面給出代碼實(shí)現(xiàn):

//連接數(shù)據(jù)庫
$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn, "utf8");//設(shè)置字符集
//查詢數(shù)據(jù)
$sql = "SELECT * FROM table";
$result = mysqli_query($conn, $sql);
//將數(shù)據(jù)轉(zhuǎn)換為Excel格式
header('Content-Type: application/vnd.ms-excel;charset=utf-8');
header('Content-Disposition: attachment;filename=filename.xls');//導(dǎo)出文件名
echo "";
echo "";
while($row = mysqli_fetch_assoc($result)) {
echo "";
}
echo "
字段1字段2字段3
".$row['field1']."".$row['field2']."".$row['field3']."
"; //關(guān)閉數(shù)據(jù)庫連接 mysqli_close($conn);

在上述代碼中,我們首先設(shè)置了MySQL數(shù)據(jù)庫的字符集為utf8,以避免字符集不一致導(dǎo)致的亂碼問題。然后通過設(shè)置導(dǎo)出Excel文件的header信息,將查詢到的數(shù)據(jù)轉(zhuǎn)換為Excel格式并導(dǎo)出。在其中,我們將每條數(shù)據(jù)的字段用<td>標(biāo)簽包裹,每行數(shù)據(jù)再用<tr>標(biāo)簽包裹,最后通過<table>標(biāo)簽包裹整個(gè)表格。這樣導(dǎo)出的Excel數(shù)據(jù)就可以被Excel正確識別和解析。