共计 1514 个字符,预计需要花费 4 分钟才能阅读完成。
这篇文章给大家介绍如何从 Mysql 中导出数据到 excel 文件中,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
每次通过 intooufile 导出数据文件成 excel 表格式 下载到本地后都会成为乱码
百度后 通过转码的方式发现还是不行,只能通过导成 txt 格式再另存的方式成 excel 格式,相当麻烦,于是自己写个脚本来达到目的
源码
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MySQLdb
import xlsxwriter
import os
import sys
os.remove(demo3.xlsx)
#default_encoding = utf8
#if sys.getdefaultencoding() != default_encoding:
# reload(sys)
# sys.setdefaultencoding(default_encoding)
conn=MySQLdb.connect(user= root ,passwd= NuyBc6jdYwU9oQ ,db= vip ,port=3306,host= 127.0.0.1 ,charset= utf8)
cursor =conn.cursor()
sql= **************
n=cursor.execute(sql)
print row count is : ,n
row=cursor.fetchall()
col=len(row[1])
print col count is: ,col
workbook = xlsxwriter.Workbook(demo3.xlsx) # 创建一个 Excel 文件
worksheet = workbook.add_worksheet() # 创建一个工作表对象
colname=[? , A , B , C , D , E , F , G , H , I , J , K , L , M , N , O , P , Q , R , S , T , U , V , W , X , Y , Z]
#### 写入表头(即列名)
k=1
for field_desc in cursor.description:
name=colname[k]+ %s % 1
m=field_desc[0].decode(utf-8) ### 中文别名需要加 utf-8
print m
worksheet.write(name,u %s % m)
k=k+1
### 写入数据
i=2
for data in row:
rowname= A%s % i
print now is: ,rowname
j=1
for m in data:
name=colname[j]+ %s % i
print m
worksheet.write(name,u %s % m)
j=j+1
i=i+1
workbook.close()
cursor.close()
conn.close()
执行:demo3.xlsx 下载到本地打开无乱码
[root@host-192-168-6-254 soft]# ls
demo3.xlsx xls.py
关于如何从 Mysql 中导出数据到 excel 文件中就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。