linux sql导出xls,导出Excel,导出表格,表格乱码(中文解决)

今天接了一个蛋疼的需求  Linux导出表格  还不给用php python脚本处理  在网上搜了很多  sql  里面什么加into  file等  我试过都没什么卵用。    接下来说自己研究的过程:


开发环境是vagrant + linux + windows:

  

1.首先在windows编辑完"xxx.txt"的文档,然后把后缀名改成   xxx.xls  记得保存格式(另存为!!!)一定要是ANSI

我发现  xls可以直接打开 并且识别中文编码


2.分析得出linux 的 保存文件是utf8编码的 所以linux里面写的sql中的"汉字“”不是GBK编码   要转换一下  

于是我用notepad  转换了下文件编码ANSI  并且拷贝到linux中这样解决了编码问题,这时候这个文件是ANSI格式!!!


3.sql脚本执行命令一定要用GBK编码!!


4.上我的脚本

mysql -uXXX -pXXX -hXXX < aaa1.sql > aaa.xls
cat aaa.xls > /alidata/www/real.xls


aaa1.sql  

=>

use zentao;
set names gbk;
SELECT
concat('"',t.id,'"') '"需求ID"',
concat('"',t.title,'"') '"需求标题"',
CASE concat('"',t.`status`,'"')
WHEN '"changed"' THEN '"已变更"'
WHEN '"closed"' THEN '"已关闭"'
WHEN '"active"' THEN '"激活"'
WHEN '"draft"' THEN '"草稿"'
END as '需求状态',
CASE concat('"',t.stage,'"')
WHEN '"planned"' THEN '"已计划"'
WHEN '"projected"' THEN '"已立项"'
WHEN '"wait"' THEN '"未开始"'
WHEN '"developing"' THEN '"研发中"'
WHEN '"developed"' THEN '"研发完毕"'
WHEN '"testing"' THEN '"测试中"'
WHEN '"tested"' THEN '"测试完毕"'
WHEN '"released"' THEN '"已发布"'
END as '"需求阶段"',
concat('"',DATEDIFF(t1.deadline,t1.estStarted)+1,'"')  '"人天"',
concat('"',t1.estStarted,'__"') '"计划开始时间"',
concat('"',t1.deadline,'__"') '"计划结束时间"',
 t1.id  '"任务id"',
CASE concat('"',t1.type,'"')
WHEN '"devel"' THEN '"开发任务"'
WHEN '"test"' THEN '"测试任务"'
END as '"任务类型"',
concat('"',t1.name,'"') '"任务标题"',
concat('"',t2.realname,'"')  '"由谁完成"',
case concat('"',t1.`status`,'"')
WHEN '"wait"' THEN '"未开始"'
WHEN '"doing"' THEN '"进行中"'
WHEN '"done"' THEN '"已完成"'
WHEN '"pause"' THEN '"已暂停"'
WHEN '"cancel"' THEN '"已取消"'
WHEN '"closed"' THEN '"已关闭"'
END as '"任务状态"'
FROM zt_story t
left JOIN  zt_task t1 on t.id = t1.story AND t1.deleted = '0' 
left JOIN  zt_user t2 on t1.assignedTo = t2.account
WHERE DATE_FORMAT(t.openedDate, '%Y%m') > '201708' AND t.deleted='0'  AND t.product not in ('6','23')
ORDER  BY t.id DESC


注意 这里中文要加双引号   防止linux输出的时候中文会乱码!!!  

因为xls是可以直接读csv格式的文件,而csv格式的文件的字段加双引号是可以无视内容里面的双引号的

xls也可以 直接读  \t 分开的文件的 比如我上面的sql   的内容就是\t分开的



5.在windows上打开xxx.xls   乱码解决了   并且表格对齐 对上了 

6.Enjoy!



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值