本文實例講述了MySQL實現導出excel的方法。分享給大家供大家參考,具體如下:
MySQL 要導出成 excel 文件很簡單,執行類似這樣的命令:
select * from 某個表 into outfile 'd:/文件名.xls';
上述命令你在服務器上執行,就導在服務器 D: 盤,若在客戶端命令行方式執行,就導在客戶端 D:盤 ,若在客戶端通過 POST 方式執行,則導在服務器 D:盤。能導成功的大前提是你有登錄權限,要有 select 權限,而且還要有 file 權限,如果沒有 file 權限,你將無法執行 select....into outfile 和 load data infile .... 之類的操作。
至于加一個按鈕,點擊一下提示保存為 excel 文件,我想你可能指的是在網頁上吧?如果在網頁上,對 MySQL 的操作一般被屏蔽在后面了,一般都是通過服務器端腳本語言(PHP,JSP,ASP之類的)去操作 MySQL,下面分別以 PHP 和JavaScript 為例,將數據庫查詢結果保存為 xls 的方法(兩種辦法我都實踐過,是可行的):
1.PHP 方法:
調用 header()
函數,參數如下:
header("content-type:application/msexcel");
header("content-disposition:filename=file001.xls");
這兩個函數放在 PHP 文件中執行數據庫查詢操作之前。
一般,數據庫查詢操作結束后,可通過 echo()
,printf()
之類的函數將查詢結果展示給客戶端,如果在執行數據庫操作之前加了上述兩行,則客戶端將不再顯示結果,而是出現一個下載并保存為 xls的對話框,路徑與文件名可以自由選擇。按鈕input type=button ...> 或鏈接a href=...>你可以放在第 1 頁,將其指向第2頁,第1頁用來向客戶端顯示結果,第2頁(PHP文件)放上上述兩行,然后寫上連接數據庫并執行與第1頁相同的查詢操作的代碼。這樣你在第1頁上點擊此鏈接就會跳出一個下載并保存為 xls 的對話框,保存的內容就是你在第 1 頁上看到的查詢結果,保存格式為 xls,保存后你可用 Excel 打開它進行操作。
PHP 是服務器端腳本,用上述辦法實際上同樣的數據結果從服務端向客戶端傳了兩次,第一次用來顯示,第二次用來打包成 xls 文件供下載。
2.JavaScript 方法:
首先在數據所在頁面的 head> 部分定義一個 JS 函數:
head>
script language="javascript">
function xSaveAsxls( xResult , xFileName ){
var ow=window.open();
with(ow){
document.write(Result);
document.execCommand('Saveas', true, xFileName);
close();
}
}
/script>
/head>
然后在展示數據的 table> 之前放上 div id=div_id>,在/table>之后放上/div>。
然后在下面做一個按鈕:
input type="button" value="保存為 Excel 文件" onclick=xSaveAsxls
(document.all.div_id.innerHTML,'filename.xls')>
這樣就行了,這個顯示為“保存為 Excel 文件”,你點擊它就彈出一個保存對話框,保存的內容就是數據結果集,格式為 xls 。
JS 是瀏覽器端腳本,用這種辦法將顯示結果保存為 xls ,其數據從服務器向客戶端只傳一次,節省傳輸資源。
另外還有一種辦法就是考慮將查詢結果集由 PHP 傳遞給 JS 數組變量,由其帶到客戶端,然后調用FileObjectSystem 進行操作,這只是個思路,我沒去實踐過。
不當之處請指正。
如果有亂碼問題:可以使用如下語句
select convert(dname using gb2312),email from d_dealerinfo into outfile 'd:/d.xls';
其中dname 是中文的
更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數據庫鎖相關技巧匯總》及《MySQL常用函數大匯總》
希望本文所述對大家MySQL數據庫計有所幫助。
您可能感興趣的文章:- 詳解 linux mysqldump 導出數據庫、數據、表結構
- Navicat for MySQL導出表結構腳本的簡單方法
- mysql mysqldump只導出表結構或只導出數據的實現方法
- 淺談mysql導出表數據到excel關于datetime的格式問題
- python3實現mysql導出excel的方法
- mysql 導出select語句結果到excel文件遇到問題及解決方法
- Mysql中文亂碼以及導出為sql語句和Excel問題解決方法[圖文]
- PHP導出MySQL數據到Excel文件(fputcsv)
- mysql如何將表結構導出到excel