Python对Excel的读写主要有xlrd、xlwt、xlutils、openpyxl、xlsxwriter几种。

如下分别利用xlwt和openpyxl将mysql数据库中查询的数据保存到excel中(注意:xlwt不支持.xlsx文件):

一、从mysql查询数据

import mysql.connector

conn=mysql.connector.connect(host='xx.xx.xx.xx',user='root', passwd='password', db='test')
cursor = conn.cursor()
sql = 'select * from table1 limit 5'
cursor.execute(sql)
datas=cursor.fetchall()
conn.commit()
cursor.close()
conn.close()
print(datas)

二、分别利用xlwt和openpyxl将datas数据保存到excel

1、xlwt写入数据示例代码

import xlwt

def set_style(name, height, bold = False):
style = xlwt.XFStyle() #初始化样式 font = xlwt.Font() #为样式创建字体
font.name = name
font.bold = bold
font.color_index = 4
font.height = height style.font = font
return style def write_excel(datas,filename):
#创建工作簿
workbook = xlwt.Workbook(encoding='utf-8')
#创建sheet
data_sheet = workbook.add_sheet('demo')
row0 = [u'地市', u'country', '时间', '温度','湿度','雨量','风速']
for i in range(len(row0)):
data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))
nrows=len(datas)
for i in range(nrows):
for j in range(len(row0)):
data_sheet.write(i+1,j,datas[i][j])
# 工作簿保存到磁盘
workbook.save(filename)

2、openpyxl写入数据示例代码

from openpyxl.workbook import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font def write_excel_openpyxl1(datas,filename):
# 在内存创建一个工作簿obj
wb = Workbook()
# 将workbook obj写到excel文件
# ew = ExcelWriter(workbook=wb)
ew=wb.active
# 设定第一个sheet页,好像第一个sheet只能这样设定
ws = wb.worksheets[0]
ws.title=u'天气'
# 向第一个sheet页写数据吧
i = 1
for line in datas:
for col in range(1,len(line)+1):
ColNum = get_column_letter(col)
ws.cell('%s%s'%(ColNum,i)).value = line[col-1]
i += 1
# 工作簿保存到磁盘
wb.save(filename) def write_excel_openpyxl(datas,filename):
# 在内存创建一个工作簿obj
result_wb = Workbook()
#第一个sheet是ws
ws1 = result_wb.worksheets[0]
# ws1=wb1.create_sheet('result',0)
#设置ws的名称
ws1.title = "天气"
row0 = [u'地市', u'country', '时间', '温度','湿度','雨量','风速']
ft = Font(name='Arial', size=11, bold=True)
for k in range(len(row0)):
ws1.cell(row=1,column=k+1).value=row0[k]
ws1.cell(row=1,column=k+1).font=ft
for i in range(1,len(datas)+1):
for j in range(1,len(row0)+1):
# col=get_column_letter(j)
# ws1.cell('%s%s'%(col,i)).value='%s' % (data[j-1])
ws1.cell(row=i+1,column=j).value=datas[i-1][j-1]
# 工作簿保存到磁盘
result_wb.save(filename = filename)

三、调用函数

write_excel_openpyxl(datas,'result.xlsx')
write_excel_openpyxl1(datas,'result1.xlsx')
write_excel(datas,'result2.xls')

结果保存到.xlsx和.xls文件中,完成!

最新文章

  1. 关于zepto(相似于jquery、jQuery用于网页浏览器,zepto用于手机浏览器)
  2. 在Salesforce中将 Decimal 数据转换成美元格式
  3. javaweb工程,Servlet里面获取当前WEB跟路径的文件绝对路径地址
  4. delphi 更改不了窗体的标题
  5. SQLServer错误代码解释
  6. Slony-I 文摘
  7. delphi 仅带下划线的TEdit控件
  8. 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法
  9. PV模型
  10. HAProxy、Nginx 配置 HTTP/2 完整指南
  11. 转:.Net程序员学习Linux最简单的方法
  12. 用CKEDITOR 做自助上传的解决方案2
  13. Using YARN with Cgroups testing in sparkml cluster
  14. java 子类继承父类成员变量的隐藏、实现方法的重写
  15. python的变量与赋值
  16. 解决浏览器跨域限制方案之CORS
  17. Python实操二
  18. 【bzoj4730】 Alice和Bob又在玩游戏
  19. 【BZOJ3884】上帝与集合的正确用法
  20. 高版本SQL备份在低版本SQL还原问题

热门文章

  1. miller_rabin算法检测生成大素数的RSA算法实现
  2. php学习之目录
  3. [刷题]算法竞赛入门经典(第2版) 5-8/UVa230 - Borrowers
  4. Unity C# 一些关于Camera的心得!
  5. m个苹果放入n个盘子问题
  6. android 本地数据库sqlite的封装
  7. 第三章(附)mysql表类型MyISAM和InnoDB区别(决定了是否支持事务)
  8. More 3D Graphics (rgl) for Classification with Local Logistic Regression and Kernel Density Estimates (from The Elements of Statistical Learning)(转)
  9. docker安装与学习
  10. 对 dotweb 框架进行统一的自定义错误处理