MySQL实现导出excel的方法分析

所属分类: 数据库 / Mysql 阅读数: 1451
收藏 0 赞 0 分享

本文实例讲述了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数据库计有所帮助。

更多精彩内容其他人还在看

Mac 将mysql路径加入环境变量的方法

这篇文章主要介绍了Mac如何将mysql路径加入环境变量,有需要的朋友好按照下面的步骤操作即可
收藏 0 赞 0 分享

mysql 增加修改字段类型及删除字段类型

本节主要介绍了mysql如何增加修改字段类型及删除字段类型,需要的朋友可以参考下
收藏 0 赞 0 分享

Mysql主从复制(master-slave)实际操作案例

这篇文章主要介绍了Mysql主从复制(master-slave)实际操作案例,同时介绍了Mysql grant 用户授权的相关内容,需要的朋友可以参考下
收藏 0 赞 0 分享

MySQL异常处理浅析

这篇文章主要介绍了MySQL的异常处理,需要的朋友可以参考下
收藏 0 赞 0 分享

MySQL存储毫秒数据的方法

MySQL中没有可以直接存储毫秒数据的数据类型,但是不过MySQL却能识别时间中的毫秒部分。这篇文章主要介绍了MySQL存储毫秒数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

MySql中使用INSERT INTO语句更新多条数据的例子

这篇文章主要介绍了MySql中使用INSERT INTO语句更新多条数据的例子,MySQL的特有语法,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows下MySql错误代码1045的解决方法

这篇文章主要介绍了Windows下MySql错误代码1045的解决方法,文中还包含了2个Linux下的解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句

这篇文章主要介绍了mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句,一般在一些统计报表中比较常用这个时间段,需要的朋友可以参考下
收藏 0 赞 0 分享

mysql的中文数据按拼音排序的2个方法

这篇文章主要介绍了mysql的中文数据按拼音排序的2个方法,用于一些特殊环境,需要的朋友可以参考下
收藏 0 赞 0 分享

MySQL定期分析检查与优化表的方法小结

听DBA的人说,相比oracle,MySQL就是一个玩具级别的数据库,在网易门户中,DBA基本很少去管理到MySQL的东西,所以我们产品使用到的MySQL的一些配置和优化还是需要我们开发人员自己动手,下面就简单介绍一下实用的定期优化方法
收藏 0 赞 0 分享
查看更多