一、读取表中的数据画图
#coding=utf-8
import MySQLdb
import matplotlib.pyplot as plt
list1=[]
list2=[]
conn= MySQLdb.connect(
host='localhost',
port = 3306,
user='root',
passwd='1234',
db ='test',
charset='utf8'
)
cur = conn.cursor()
aa=cur.execute("select * from B where flag='f'")
rows = cur.fetchall()
for row in rows:
list1.append(row[0])
list2.append(row[1])
cur.close()
conn.commit()
conn.close()
for i in list2:
print i
plt.plot(list1,list2)
plt.ylabel('col')
plt.xlabel('id')
plt.show()
简单的实现了一下,详细细节再继续完善。
二、读取表中数据写入到excel文件中
查了一些code,找到了两种方法
参考了一个同时写入到excel和txt中,表示不太懂,继续研究。。。
#coding=utf-8
import MySQLdb
import xlrd
import sys
import xlsxwriter
conn= MySQLdb.connect(
host='localhost',
port = 3306,
user='root',
passwd='1234',
db ='test',
charset='utf8'
)
cur = conn.cursor()
aa=cur.execute("select * from B where flag='f'")
data = cur.fetchall()
workbook2007 = xlsxwriter.Workbook('DSE_WR_W_DAY.xlsx') # 创建目标excel表格
worksheet2007 = workbook2007.add_worksheet() #创建 Sheet1表格
fw = open('DSE_WR_W_DAY.txt', 'w')
format = workbook2007.add_format({'border': 1})
# 同时输出到excel和txt
[[[[worksheet2007.write(i, j, str(value), format), fw.write(str(value)), fw.write('\t')] for j, value in
enumerate(value_r)], fw.write('\n')] for i, value_r in enumerate(data)]
workbook2007.close()
fw.close()
print ('excel创建完成')
cur.close()
conn.commit()
conn.close()
2、遇到了一个问题保存文件时,文件名是乱码,编码是最大的问题,解决方法在文件名前加了个u。。。
#!/usr/bin/env python
# coding=UTF-8
import MySQLdb
import xlwt # excel write
import sys
hostIp = 'localhost'
user = 'root'
passwd = '1234'
database = 'test'
def chongZhiWeiTouZi(): # 充值未投资用户
sql = '''SELECT
ctci.acc_no AS '账号',
ctci.cn_name AS '姓名',
ctci.job_phone AS '手机',
ctci.create_date AS '注册时间',
ctci.amount AS '充值金额',
ctci.create_time AS '充值时间'
FROM info ctci'''
columnName = ['账号', '姓名', '手机', '注册时间', '充值金额', '充值时间'] # 定义所有的列名,共6列
style1 = xlwt.XFStyle() # 设置单元格格式
style1.num_format_str = 'yyyy/m/d h:mm:ss'
wb = xlwt.Workbook(encoding='utf-8') # 创建一个excel工作簿,编码utf-8,表格中支持中文
sheet = wb.add_sheet('sheet 1') # 创建一个sheet
for i in range(len(columnName)): # 将列名插入表格,共6列
sheet.write(0, i, columnName[i])
db = MySQLdb.connect(hostIp, user, passwd, database, charset="utf8") # 连接数据库,编码utf-8
cursor = db.cursor() # 创建一个指针对象
cursor.execute(sql) # 执行sql语句
results = cursor.fetchall()
rows = len(results) # 获取行数
print rows
for i in range(rows):
for j in range(3):
sheet.write(i + 1, j, results[i][j])
sheet.write(i + 1, 3, results[i][3], style1) # 设置时间列的单元格格式
sheet.write(i + 1, 4, results[i][4])
sheet.write(i + 1, 5, results[i][5], style1)
wb.save(u'员工信息表.xls') # 保存表格,并命名为 员工信息表.xls 重点加了个u进行编码
cursor.close()
db.close()
chongZhiWeiTouZi()
这种方法理解简单,很清楚,感谢之前分享的人。
下午装navicat for mysql,mysql,之前没用过,装起来费了太多的事,装MySQLdb包时又遇到麻烦,总之今天下午解决了,学到了一些东西。。。。