• 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 是中文的
  • 相关阅读:
    小白的基金理财课
    Spring Security 入门原理及实战
    spring-data-rest的魔力 10分钟实现增删改查
    redis单点、redis主从、redis哨兵sentinel,redis集群cluster配置搭建与使用
    Netty开发redis客户端,Netty发送redis命令,netty解析redis消息
    使用Netty实现HTTP服务器
    Netty实现心跳机制
    SpringMVC是怎么工作的,SpringMVC的工作原理
    Netty 学习系列
    Mybatis 源码学习系列
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/4563764.html
Copyright © 2020-2023  润新知