MYSQL5.1 WINDOWS環境下導出查詢數據到EXCEL文件

今天做一個多表的聯合查詢,用phpmyadmin不支持導出,於是找到下面的方法,不錯!

mysql查詢出來的記錄,導出到EXCEL文件,直接做報表輸出。

測試環境WINDOWS XP,OFFICE 2003,MYSQL 5.1.45
1:創建一個測試表,3個字段,其中2個中文字段,用來做演示使用 mysql> create table tt(a int(11) not null,b varchar(30),c varchar(30));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into tt values(1,'北京','北京大學'),(2,'上海','上海大學'),(3,'深圳','深圳大學');
Query OK, 3 rows affected

Records: 3 Duplicates: 0 Warnings: 0
 

2:導出到EXCEL文件,用OUTFILE方法,下面2種方法的效果是一樣的

mysql> select b,c from tt into outfile 'c:\xls_tt.xls';
Query OK, 3 rows affected (0.00 sec)

mysql> select b,c into outfile 'c:\xlstt.xls' from tt;
Query OK, 3 rows affected (0.00 sec)
 

3:到C盤下找到導出的XLS文件,發現都是亂碼,如


鍖椾含 鍖椾含澶у 
涓婃搗 涓婃搗澶у 
娣卞湷 娣卞湷澶у 


這樣完全沒辦法使用。“這個時候文件是utf-8編碼的,用excel打開,亂碼。
把test.xls以文本方式打開,然後另存為,在編碼選擇ANSI編碼,保存”。這樣操作後,不亂碼瞭,但是需要手工去處理。再看其他辦法

4:通過網絡朋友的幫忙,找到下面轉換的方法

mysql> select convert(b using gb2312),convert(c using gb2312) into outfile'c:\xlstt12.xls' from tt;
Query OK, 3 rows affected (0.00 sec)

 

打開導出的文件,一切都正常瞭。

EXCEL的默認編碼方式是GB2312的,在查詢出來的字段轉換成DB2312後,雙方達成一致,所以不再亂碼。


 

閃電小子 blog

You May Also Like