Mysql查詢結果匯出為Excel的幾種方法
阿新 • • 發佈:2019-01-24
本想直接轉發,奈何密碼忘記了。原文複製過來吧。
原文地址:https://www.cnblogs.com/qiaoyihang/p/6398673.html
【我使用的是方法二】
本文地址:http://www.cnblogs.com/qiaoyihang/p/6398673.html
具體原文找不到了,此篇是借鑑門戶的一篇文章
方法一:
查詢語句直接輸出
語法格式:
Example: select * into outfile '/data/var-3307/catid.xls' from help_cat where 1 order by cat_id desc limit 0,20; select* into outfile '匯出檔案存放目錄' from 表面和查詢條件等資訊!
請注意許可權問題,如果實在不行,放在/tmp 目錄下
方法二:
在shell命令列下把Excel以文字方式開啟,然後另存為,在編碼選擇ansi編碼儲存
語法格式
1 2 3 4 |
Example:
echo "select
* from db_web.help_cat where 1 order by sort desc limit 0,20" |
mysql -h127.0.0.1 -uroot > /data/sort.xls
echo
查詢語句 管道 登入mysql連結方式 > 定向輸出檔案 |
方式三:
查詢定向輸出為Excel檔案字尾,然後轉碼
語法格式:
1 2 3 4 |
Example:
mysql
db_web -uroot -e "select
* from help_cat where 1 order by type desc limit 0,20" >
/data/type.xls
mysql連結資訊
資料庫 使用者名稱 密碼 然後執行查詢語句,定向輸出。
|
將檔案下載到本地,開啟如果中文亂碼,因為office預設的是gb2312編碼,伺服器端生成的很有可能是utf-8編碼,這個時候你有兩種選擇:
1、在伺服器端使用iconv來進行編碼轉換
1 |
iconv
-futf8 -tgb2312 -otype1.xls type.xls
|
如果轉換順利,那麼從server上下載下來就可以使用了。
2、轉換如果不順利,則會提示:
1 |
iconv:
illegal input sequence at position
1841
|
類似錯誤,如下解決:
先把type.xls下載下來,這個時候檔案是utf-8編碼的,用excel開啟,亂碼。把type.xls以文字方式開啟,然後另存為,在編碼選擇ANSI編碼儲存。