MySQL实现导出excel的方法分析
本文实例讲述了MySQL实现导出excel的方法。分享给大家供大家参考,具体如下:
MySQL要导出成excel文件很简单,执行类似这样的命令:
select*from某个表intooutfile'd:/文件名.xls';
上述命令你在服务器上执行,就导在服务器D:盘,若在客户端命令行方式执行,就导在客户端D:盘,若在客户端通过POST方式执行,则导在服务器D:盘。能导成功的大前提是你有登录权限,要有select权限,而且还要有file权限,如果没有file权限,你将无法执行select....intooutfile和loaddatainfile....之类的操作。
至于加一个按钮,点击一下提示保存为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的对话框,路径与文件名可以自由选择。按钮
PHP是服务器端脚本,用上述办法实际上同样的数据结果从服务端向客户端传了两次,第一次用来显示,第二次用来打包成xls文件供下载。
2.JavaScript方法:
首先在数据所在页面的
部分定义一个JS函数:functionxSaveAsxls(xResult,xFileName){ varow=window.open(); with(ow){ document.write(Result); document.execCommand('Saveas',true,xFileName); close(); } }
然后在展示数据的
然后在下面做一个按钮:
这样就行了,这个显示为“保存为Excel文件”,你点击它就弹出一个保存对话框,保存的内容就是数据结果集,格式为xls。
JS是浏览器端脚本,用这种办法将显示结果保存为xls,其数据从服务器向客户端只传一次,节省传输资源。
另外还有一种办法就是考虑将查询结果集由PHP传递给JS数组变量,由其带到客户端,然后调用FileObjectSystem进行操作,这只是个思路,我没去实践过。
不当之处请指正。
如果有乱码问题:可以使用如下语句
selectconvert(dnameusinggb2312),emailfromd_dealerinfointooutfile'd:/d.xls';
其中dname是中文的
更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》
希望本文所述对大家MySQL数据库计有所帮助。