Chinaunix首页 | 论坛 | 博客
  • 博客访问: 852923
  • 博文数量: 65
  • 博客积分: 534
  • 博客等级: 中士
  • 技术积分: 885
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-23 14:42
个人简介

世上没有东西可以取代坚毅的地位,才干不能,有才能而失败者比比皆是;天才不能,才华横溢又毫无进取者不胜枚举;单靠教育不能,受过教育但潦倒终生者充斥世间;惟有坚毅与果断者能够无所不能,得到成功。雷?克罗克

文章分类

全部博文(65)

文章存档

2017年(1)

2015年(4)

2014年(1)

2013年(19)

2012年(32)

2011年(8)

我的朋友

分类: 系统运维

2013-05-02 14:34:19

这里不讲如何用php到处,只是用mysql的命令和shell结合来导出。。。

方法一:进入到mysql的控制台,输入:

  1. SELECT * INTO OUTFILE ‘/tmp/test.xls‘ FROM tb1 WHERE 1 ORDER BY id DESC  LIMIT 0, 50;

这样,应该会在你的mysql的/tmp目录下产生一个test.xls的文件。。。

但是如果你的shell的登录帐户和mysql的运行账户不同,很可能这个方法就不适用了,因为你可以通过mysql控制台来产生这个文件,但是你却没有 办法通过shell来对这个文件进行操作,因为用户不同,没有访问权限。

这个时候,就可以直接在shell命令行上对mysql操作了:

  1. echo "SELECT * FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50;"| /usr/local/mysql/bin/mysql -hlocalhost -uroot -pxxxxx -D databasename > /tmp/test.xls

ok,把你的test.xls文件从tmp下载到本地打开来看看吧。。。
什么?中文乱码?
别着急。。。
因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,这个时候你有两种选择,
1.在服务器端使用iconv来进行编码转换,

  1. iconv -futf8 -tgb2312 -otest2.xls test.xls

如果转换顺利,那么从server上下载下来就可以使用了。
转换如果不顺利,则会提示:iconv: illegal input sequence at position 1841 类似于这样的错误,
先把test.xls下载下来,这个时候文件是utf-8编码的,用excel打开,乱码。
把test.xls以文本方式打开,然后另存为,在编码选择ANSI编码,保存。

ok,再用excel打开,乱码问题,烟消云散。。。

阅读(4386) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~