linux下 在QT中把mysql的数据导出excel

我想要吧一个mysql的表输出成excel的表,QT里面没有找到这样做的办法谁知道请帮个忙谢谢... 我想要吧一个mysql的表输出成excel的表,QT里面没有找到这样做的办法 谁知道请帮个忙 谢谢 展开
 我来答
priester_hero
推荐于2016-04-24 · TA获得超过473个赞
知道小有建树答主
回答量:703
采纳率:11%
帮助的人:224万
展开全部
方法一:进入到mysql的控制台,输入:
1. SELECT * INTO OUTFILE ‘./test.xls‘ FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50;
这样,应该会在你的mysql的var/目录下产生一个test.xls的文件。。。
但是如果你的shell的登录帐户和mysql的运行账户不同,很可能这个方法就不适用了,因为你可以通过mysql控制台来产生这个文件,但是你却没有办法通过shell来对这个文件进行操作,因为用户不同,没有访问权限。
这个时候,同事告诉偶滴办法就重装登录了!!!
1. echo "SELECT * FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50;"| /usr/local/mysql/bin/mysql -hlocalhost -uroot -pxxxxx > /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编码,保存。

望采纳。。。纯手敲
追问
那么在麻烦你一下 怎么移植到QT上面用?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式