现在有很多工具可以将mysql数据库中数据直接dump为excel表格模式,例如,navicat,sqlyog等,但是个人认为最好用是navicat,但是navicat需要收费。
通过select into outfile 可将数据导出为.txt格式,然后再通过python脚本将.txt格式转换成xls格式。
MySQL导出文本语句:
SELECT * FROM table_name INTO OUTFILE "/tmp/tmp_xls.txt" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ' ';
Python封装脚本:
#!/bin/env python # -*- encoding: utf-8 -*- import datetime import time import os import sys import xlwt #需要的模块,安装:pip install xlwt def txt2xlsfilename,xlsname): #文本转换成xls的函数,filename 表示一个要被转换的txt文本,xlsname 表示转换后的文件名 print 'converting xls ... ' f = openfilename) #打开txt文本进行读取 x = 0 #在excel开始写的位置(y) y = 0 #在excel开始写的位置(x) xls=xlwt.Workbook) sheet = xls.add_sheet'sheet1',cell_overwrite_ok=True) #生成excel的方法,声明excel while True: #循环,读取文本里面的所有内容 line = f.readline) #一行一行读取 if not line: #如果没有内容,则退出循环 break for i in line.split','):#读取出相应的内容写到x,即从数据库导出时的分隔符 item=i.strip).decode'utf8') sheet.writex,y,item) y += 1 #另起一列 x += 1 #另起一行 y = 0 #初始成第一列 f.close) xls.savexlsname+'.xls') #保存 if __name__ == "__main__": filename = sys.argv[1] xlsname = sys.argv[2] txt2xlsfilename,xlsname)
执行命令:
[root@hankyoon ]# python python_xls.py tmp_xls.txt abc
[root@hankyoon ]# ls abc.xls
abc.xls