利用python将mysql中的数据导入excel
2024-10-19 07:40:51
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文件中,完成!
最新文章
- 关于zepto(相似于jquery、jQuery用于网页浏览器,zepto用于手机浏览器)
- 在Salesforce中将 Decimal 数据转换成美元格式
- javaweb工程,Servlet里面获取当前WEB跟路径的文件绝对路径地址
- delphi 更改不了窗体的标题
- SQLServer错误代码解释
- Slony-I 文摘
- delphi 仅带下划线的TEdit控件
- 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法
- PV模型
- HAProxy、Nginx 配置 HTTP/2 完整指南
- 转:.Net程序员学习Linux最简单的方法
- 用CKEDITOR 做自助上传的解决方案2
- Using YARN with Cgroups testing in sparkml cluster
- java 子类继承父类成员变量的隐藏、实现方法的重写
- python的变量与赋值
- 解决浏览器跨域限制方案之CORS
- Python实操二
- 【bzoj4730】 Alice和Bob又在玩游戏
- 【BZOJ3884】上帝与集合的正确用法
- 高版本SQL备份在低版本SQL还原问题
热门文章
- miller_rabin算法检测生成大素数的RSA算法实现
- php学习之目录
- [刷题]算法竞赛入门经典(第2版) 5-8/UVa230 - Borrowers
- Unity C# 一些关于Camera的心得!
- m个苹果放入n个盘子问题
- android 本地数据库sqlite的封装
- 第三章(附)mysql表类型MyISAM和InnoDB区别(决定了是否支持事务)
- More 3D Graphics (rgl) for Classification with Local Logistic Regression and Kernel Density Estimates (from The Elements of Statistical Learning)(转)
- docker安装与学习
- 对 dotweb 框架进行统一的自定义错误处理