bitscn.com
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 的对话框,路径与文件名可以自由选择。按钮 或链接你可以 放在第 1 页,将其指向第2页,第1页用来向客户端显示结果,第2页(php文件)放上上述两行,然 后写上连接数据库并执行与第1页相同的查询操作的代码。这样你在第1页上点击此链接就会跳出一个 下载并保存为 xls 的对话框,保存的内容就是你在第 1 页上看到的查询结果,保存格式为 xls,保 存后你可用 excel 打开它进行操作。 php 是服务器端脚本,用上述办法实际上同样的数据结果从服务端向客户端传了两次,第一次用来显 示,第二次用来打包成 xls 文件供下载。 2.javascript 方法: 首先在数据所在页面的 部分定义一个 js 函数: 然后在展示数据的
之前放上 ,在
之后放上。 然后在下面做一个按钮: 这样就行了,这个显示为“保存为 excel 文件”,你点击它就弹出一个保存对话框,保存的内容就 是数据结果集,格式为 xls 。 js 是浏览器端脚本,用这种办法将显示结果保存为 xls ,其数据从服务器向客户端只传一次,节省 传输资源。 另外还有一种办法就是考虑将查询结果集由 php 传递给 js 数组变量,由其带到客户端,然后调用 fileobjectsystem 进行操作,这只是个思路,我没去实践过。 不当之处请指正。 如果有乱码问题:可以使用如下语句select convert(dname using gb2312),email from d_dealerinfo into outfile 'd:/d.xls';其中dname 是中文的 作者 xuedong bitscn.com