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后,双方达成一致,所以不再乱码。
转载于:https://blog.51cto.com/bjiokn/390158
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110722.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...